{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 第四章 递归"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 4.1 说明性的例子"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 4.1.1 阶乘函数："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "def factorial(n):\n",
    "    return n*factorial(n-1) if n >= 1 else 1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1\n",
      "120\n"
     ]
    }
   ],
   "source": [
    "print(factorial(0))\n",
    "print(factorial(5))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "用循环计算阶乘："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "def factorial_loop(n):\n",
    "    if n == 0:\n",
    "        return 1\n",
    "    else:\n",
    "        result = 1\n",
    "        for i in range(1, n+1):\n",
    "            result *= i\n",
    "        return result"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1\n",
      "120\n"
     ]
    }
   ],
   "source": [
    "print(factorial_loop(0))\n",
    "print(factorial_loop(5))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "但是在更为复杂的例子中，使用递归思路简单且效果很好。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 4.1.2 绘制英式标尺"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "对于递归函数而言，除了找到基线条件、并通过部分构成总体来缩小问题规模外，一个很重要的前提条件是，知道函数输入的是什么，输出的是什么。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "英式标尺的主要难度在于理解而不是编写程序，这个问题是给定尺子长度（多少英尺），以及最长刻度的长度（最大刻度就在整数英尺处）；最长刻度的长度将决定的刻度尺的刻度有多复杂，需要打印标签的也只在整数英尺数。每英尺都是一样的，不同的只有标签，这个用循环搞定，也不需要担心标签，标签在循环里搞定，因此只需要一个函数来搞定每英尺内的刻度绘制，输入的变量是整数英尺处的刻度长度，根据刻度长度绘制英尺内的刻度。规律是每个中心点少一单位长度，直到长度为1。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [],
   "source": [
    "def print_ticks(ticks_num, ticks_label=''):\n",
    "    print(ticks_num * '-' + ticks_label)\n",
    "    \n",
    "def print_interval(length):\n",
    "    if length == 1:\n",
    "        print('-')\n",
    "    else:\n",
    "        print_interval(length - 1)\n",
    "        print_ticks(length)\n",
    "        print_interval(length - 1)\n",
    "\n",
    "def print_ruler(inch, num):\n",
    "    for i in range(0, inch):\n",
    "        print_ticks(num, str(i))\n",
    "        print_interval(num)\n",
    "    print_ticks(num, str(inch))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "-----0\n",
      "-\n",
      "--\n",
      "-\n",
      "---\n",
      "-\n",
      "--\n",
      "-\n",
      "----\n",
      "-\n",
      "--\n",
      "-\n",
      "---\n",
      "-\n",
      "--\n",
      "-\n",
      "-----\n",
      "-\n",
      "--\n",
      "-\n",
      "---\n",
      "-\n",
      "--\n",
      "-\n",
      "----\n",
      "-\n",
      "--\n",
      "-\n",
      "---\n",
      "-\n",
      "--\n",
      "-\n",
      "-----1\n",
      "-\n",
      "--\n",
      "-\n",
      "---\n",
      "-\n",
      "--\n",
      "-\n",
      "----\n",
      "-\n",
      "--\n",
      "-\n",
      "---\n",
      "-\n",
      "--\n",
      "-\n",
      "-----\n",
      "-\n",
      "--\n",
      "-\n",
      "---\n",
      "-\n",
      "--\n",
      "-\n",
      "----\n",
      "-\n",
      "--\n",
      "-\n",
      "---\n",
      "-\n",
      "--\n",
      "-\n",
      "-----2\n",
      "-\n",
      "--\n",
      "-\n",
      "---\n",
      "-\n",
      "--\n",
      "-\n",
      "----\n",
      "-\n",
      "--\n",
      "-\n",
      "---\n",
      "-\n",
      "--\n",
      "-\n",
      "-----\n",
      "-\n",
      "--\n",
      "-\n",
      "---\n",
      "-\n",
      "--\n",
      "-\n",
      "----\n",
      "-\n",
      "--\n",
      "-\n",
      "---\n",
      "-\n",
      "--\n",
      "-\n",
      "-----3\n"
     ]
    }
   ],
   "source": [
    "print_ruler(3, 5)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 4.1.3 二分查找"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "二分查找用于在n个元素的有序序列中定位目标值。（之前不是用递归写的）"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "顺序查找：序列无序时，一般通过遍历序列的所有元素来查找一个元素，即顺序查找。在最糟糕的情况下，顺序查找的运行时间（或称为时间复杂度）为O(n)（这里先不考虑数据结构，或者默认为数组，直接通过索引访问，速度最快）。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "二分查找时间复杂度为$O(log^n)$。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "下面用两种方法实现二分查找（第二种为递归）。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "首先，搞清楚二分查找的输入和输出。输入是一个序列和一个值，输出bull值，表示序列中是否有该值。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "循环实现二分查找："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [],
   "source": [
    "def binary_search_loop(sequence, value):\n",
    "    start = 0\n",
    "    stop = len(sequence)\n",
    "    while start <= stop:\n",
    "        middle_index = (start + stop)//2\n",
    "        if value == sequence[middle_index]:\n",
    "            return True\n",
    "        elif value > sequence[middle_index]:\n",
    "            start = middle_index + 1\n",
    "        else:\n",
    "            stop = middle_index - 1\n",
    "    return False"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "True\n",
      "False\n"
     ]
    }
   ],
   "source": [
    "print(binary_search_loop([1, 12, 23, 34, 45, 56, 67, 78, 89, 90, 100], 34))\n",
    "print(binary_search_loop([1, 12, 23, 34, 45, 56, 67, 78, 89, 90, 100], 35))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "递归实现二分查找："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [],
   "source": [
    "def binary_search_recursion(sequence, value):\n",
    "    if len(sequence) == 1:\n",
    "        return sequence[0] == value\n",
    "    elif len(sequence) == 2:\n",
    "        return sequence[0] == value or sequence[1] == value\n",
    "    else:\n",
    "        if  value == sequence[len(sequence)//2]:\n",
    "            return True\n",
    "        elif value > sequence[len(sequence)//2]:\n",
    "            return binary_search_recursion(sequence[(len(sequence)//2+1): ], value)\n",
    "        else:\n",
    "            return binary_search_recursion(sequence[ :len(sequence)//2], value)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "True\n",
      "False\n"
     ]
    }
   ],
   "source": [
    "print(binary_search_recursion([1, 12, 23, 34, 45, 56, 67, 78, 89, 90, 100], 34))\n",
    "print(binary_search_recursion([1, 12, 23, 34, 45, 56, 67, 78, 89, 90, 100], 35))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [],
   "source": [
    "def binary_search_recursion2(sequence, target, low, high):             ## [low, high]，闭区间\n",
    "    if low > high:\n",
    "        return False\n",
    "    else:\n",
    "        mid = (low + high)//2\n",
    "        if target == sequence[mid]:\n",
    "            return True\n",
    "        elif target < sequence[mid]:\n",
    "            return binary_search_recursion2(sequence, target, low, mid-1)\n",
    "        else:\n",
    "            return binary_search_recursion2(sequence, target, mid+1, high)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "True\n",
      "False\n"
     ]
    }
   ],
   "source": [
    "print(binary_search_recursion2([1, 12, 23, 34, 45, 56, 67, 78, 89, 90, 100], 34, 0, 10))\n",
    "print(binary_search_recursion2([1, 12, 23, 34, 45, 56, 67, 78, 89, 90, 100], 35, 0, 10))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "这个算法的效率更高，上一个递归二分查找，需要在非递归部分，对序列的一半进行复制，既占用空间，又花时间，而将low和high加入输入参数中，可以防止这个问题，原因是，在二分查找中，序列本身其他元素重要性并不大，重要的是首尾的索引和中间元素，通过不断改变首尾索引得到中间索引再得到中间元素，在时间上和空间上都要优于通过复制序列的一半来得到。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 4.1.4 文件系统"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "现代操作系统的文件系统目录（即文件夹）是通过递归的方式来定义的。操作系统文件夹的很多行为都可以通过递归实现，比如复制或者删除目录。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "例子：计算嵌套在一个特定目录中的所有文件和目录的总磁盘使用情况。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "import os\n",
    "\n",
    "def disk_usage(path):\n",
    "    total = os.path.getsize(path)\n",
    "    if os.path.isdir(path):\n",
    "        for filename in os.listdir(path):\n",
    "            childpath = os.path.join(path, filename)\n",
    "            total += disk_usage(childpath)\n",
    "    print('{0:<10}'.format(total), path)\n",
    "    return total"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "这里补充一下Python str类的format方法："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "100+1=101\n",
      "0.333\n",
      "我是马允全\n",
      "100        100\n",
      "    100100    \n",
      "  100    100  \n"
     ]
    }
   ],
   "source": [
    "print('{0}+{1}={2}'.format('100', '1', '101'))                  ## 按顺序填充，后面输入的string自动生成tuple\n",
    "print('{0:.3}'.format(1/3))                                     ## 控制精度\n",
    "print('{me}是{name}'.format(me='我', name='马允全'))            ## 用变量名\n",
    "print('{0:<7}{1:>7}'.format('100', '100'))                      ## 左对齐右对齐\n",
    "print('{0:>7}{1:<7}'.format('100', '100'))\n",
    "print('{0:^7}{1:^7}'.format('100', '100'))                      ## 居中"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "294        C:/Users/w/Desktop/python_pycharm\\数据结构与算法——Python语言实现\\.idea\\misc.xml\n",
      "349        C:/Users/w/Desktop/python_pycharm\\数据结构与算法——Python语言实现\\.idea\\modules.xml\n",
      "17316      C:/Users/w/Desktop/python_pycharm\\数据结构与算法——Python语言实现\\.idea\\workspace.xml\n",
      "408        C:/Users/w/Desktop/python_pycharm\\数据结构与算法——Python语言实现\\.idea\\数据结构与算法——Python语言实现.iml\n",
      "22463      C:/Users/w/Desktop/python_pycharm\\数据结构与算法——Python语言实现\\.idea\n",
      "2179       C:/Users/w/Desktop/python_pycharm\\数据结构与算法——Python语言实现\\__pycache__\\CreditCard.cpython-37.pyc\n",
      "2179       C:/Users/w/Desktop/python_pycharm\\数据结构与算法——Python语言实现\\__pycache__\n",
      "2518       C:/Users/w/Desktop/python_pycharm\\数据结构与算法——Python语言实现\\第二章 面向对象编程\\CreditCard.py\n",
      "1531       C:/Users/w/Desktop/python_pycharm\\数据结构与算法——Python语言实现\\第二章 面向对象编程\\Progression.py\n",
      "0          C:/Users/w/Desktop/python_pycharm\\数据结构与算法——Python语言实现\\第二章 面向对象编程\\__pycache__\n",
      "8145       C:/Users/w/Desktop/python_pycharm\\数据结构与算法——Python语言实现\\第二章 面向对象编程\n",
      "36883      C:/Users/w/Desktop/python_pycharm\\数据结构与算法——Python语言实现\n",
      "294        C:/Users/w/Desktop/python_pycharm\\爬虫\\.idea\\misc.xml\n",
      "271        C:/Users/w/Desktop/python_pycharm\\爬虫\\.idea\\modules.xml\n",
      "6136       C:/Users/w/Desktop/python_pycharm\\爬虫\\.idea\\workspace.xml\n",
      "408        C:/Users/w/Desktop/python_pycharm\\爬虫\\.idea\\爬虫.iml\n",
      "11205      C:/Users/w/Desktop/python_pycharm\\爬虫\\.idea\n",
      "1319       C:/Users/w/Desktop/python_pycharm\\爬虫\\selenium爬虫\\selenium-baidu.py\n",
      "345        C:/Users/w/Desktop/python_pycharm\\爬虫\\selenium爬虫\\selenium-wikipedia.py\n",
      "668        C:/Users/w/Desktop/python_pycharm\\爬虫\\selenium爬虫\\selenium爬虫.py\n",
      "1860       C:/Users/w/Desktop/python_pycharm\\爬虫\\selenium爬虫\\上海医疗.py\n",
      "525        C:/Users/w/Desktop/python_pycharm\\爬虫\\selenium爬虫\\上海医疗.txt\n",
      "1576       C:/Users/w/Desktop/python_pycharm\\爬虫\\selenium爬虫\\上海医疗—多页.py\n",
      "243468     C:/Users/w/Desktop/python_pycharm\\爬虫\\selenium爬虫\\上海医疗多页.txt\n",
      "1257579    C:/Users/w/Desktop/python_pycharm\\爬虫\\selenium爬虫\\教程.html\n",
      "1511436    C:/Users/w/Desktop/python_pycharm\\爬虫\\selenium爬虫\n",
      "130845     C:/Users/w/Desktop/python_pycharm\\爬虫\\习爬虫\\content.txt\n",
      "1259       C:/Users/w/Desktop/python_pycharm\\爬虫\\习爬虫\\网址-标题-时间.py\n",
      "136200     C:/Users/w/Desktop/python_pycharm\\爬虫\\习爬虫\n",
      "465865     C:/Users/w/Desktop/python_pycharm\\爬虫\\回归爬虫\\books_all.txt\n",
      "698705     C:/Users/w/Desktop/python_pycharm\\爬虫\\回归爬虫\\book_author.txt\n",
      "15836      C:/Users/w/Desktop/python_pycharm\\爬虫\\回归爬虫\\key.xlsx\n",
      "19827      C:/Users/w/Desktop/python_pycharm\\爬虫\\回归爬虫\\key2.csv\n",
      "28435      C:/Users/w/Desktop/python_pycharm\\爬虫\\回归爬虫\\key2.xlsx\n",
      "816        C:/Users/w/Desktop/python_pycharm\\爬虫\\回归爬虫\\urls_剩余.txt\n",
      "1114112    C:/Users/w/Desktop/python_pycharm\\爬虫\\回归爬虫\\urls去重复.txt\n",
      "1536       C:/Users/w/Desktop/python_pycharm\\爬虫\\回归爬虫\\作者爬虫.py\n",
      "3806       C:/Users/w/Desktop/python_pycharm\\爬虫\\回归爬虫\\内容爬虫-bs4.py\n",
      "732        C:/Users/w/Desktop/python_pycharm\\爬虫\\回归爬虫\\剩余url.csv\n",
      "9609       C:/Users/w/Desktop/python_pycharm\\爬虫\\回归爬虫\\剩余url.xlsx\n",
      "1461       C:/Users/w/Desktop/python_pycharm\\爬虫\\回归爬虫\\剩余url爬虫.py\n",
      "4903       C:/Users/w/Desktop/python_pycharm\\爬虫\\回归爬虫\\小类爬虫.py\n",
      "1190       C:/Users/w/Desktop/python_pycharm\\爬虫\\回归爬虫\\所有url.py\n",
      "5113       C:/Users/w/Desktop/python_pycharm\\爬虫\\回归爬虫\\改进小类爬虫.py\n",
      "63         C:/Users/w/Desktop/python_pycharm\\爬虫\\回归爬虫\\没爬下来的网址.txt\n",
      "801        C:/Users/w/Desktop/python_pycharm\\爬虫\\回归爬虫\\电子工业出版社.py\n",
      "2369       C:/Users/w/Desktop/python_pycharm\\爬虫\\回归爬虫\\电子工业出版社内容.py\n",
      "18983      C:/Users/w/Desktop/python_pycharm\\爬虫\\回归爬虫\\计算机-计算机基础.txt\n",
      "20618      C:/Users/w/Desktop/python_pycharm\\爬虫\\回归爬虫\\计算机-计算机基础.xlsx\n",
      "7140       C:/Users/w/Desktop/python_pycharm\\爬虫\\回归爬虫\\计算机-计算机基础url.txt\n",
      "2426016    C:/Users/w/Desktop/python_pycharm\\爬虫\\回归爬虫\n",
      "1136737    C:/Users/w/Desktop/python_pycharm\\爬虫\\正则表达式爬虫\\20150318065228_90334.pptx\n",
      "980519     C:/Users/w/Desktop/python_pycharm\\爬虫\\正则表达式爬虫\\20160310050054_43640.pptx\n",
      "1470113    C:/Users/w/Desktop/python_pycharm\\爬虫\\正则表达式爬虫\\20160310050123_24062.pptx\n",
      "1106713    C:/Users/w/Desktop/python_pycharm\\爬虫\\正则表达式爬虫\\20160331032311_28209.pptx\n",
      "8823       C:/Users/w/Desktop/python_pycharm\\爬虫\\正则表达式爬虫\\content.txt\n",
      "206958     C:/Users/w/Desktop/python_pycharm\\爬虫\\正则表达式爬虫\\paragraph.txt\n",
      "1460       C:/Users/w/Desktop/python_pycharm\\爬虫\\正则表达式爬虫\\requests_novel.py\n",
      "32         C:/Users/w/Desktop/python_pycharm\\爬虫\\正则表达式爬虫\\selenium.py\n",
      "82223      C:/Users/w/Desktop/python_pycharm\\爬虫\\正则表达式爬虫\\target.txt\n",
      "0          C:/Users/w/Desktop/python_pycharm\\爬虫\\正则表达式爬虫\\target1.txt\n",
      "81600      C:/Users/w/Desktop/python_pycharm\\爬虫\\正则表达式爬虫\\urls.txt\n",
      "1024       C:/Users/w/Desktop/python_pycharm\\爬虫\\正则表达式爬虫\\信息.py\n",
      "435        C:/Users/w/Desktop/python_pycharm\\爬虫\\正则表达式爬虫\\初学.py\n",
      "624        C:/Users/w/Desktop/python_pycharm\\爬虫\\正则表达式爬虫\\最好大学.py\n",
      "11878      C:/Users/w/Desktop/python_pycharm\\爬虫\\正则表达式爬虫\\爬虫——范迪.docx\n",
      "822        C:/Users/w/Desktop/python_pycharm\\爬虫\\正则表达式爬虫\\老马学爬虫.py\n",
      "0          C:/Users/w/Desktop/python_pycharm\\爬虫\\正则表达式爬虫\\老马巴拉.py\n",
      "2046       C:/Users/w/Desktop/python_pycharm\\爬虫\\正则表达式爬虫\\老马爬出版社.py\n",
      "1916       C:/Users/w/Desktop/python_pycharm\\爬虫\\正则表达式爬虫\\老马爬当当.py\n",
      "1962       C:/Users/w/Desktop/python_pycharm\\爬虫\\正则表达式爬虫\\老马爬虫.py\n",
      "490        C:/Users/w/Desktop/python_pycharm\\爬虫\\正则表达式爬虫\\试验.py\n",
      "5100471    C:/Users/w/Desktop/python_pycharm\\爬虫\\正则表达式爬虫\n",
      "9189424    C:/Users/w/Desktop/python_pycharm\\爬虫\n",
      "9230403    C:/Users/w/Desktop/python_pycharm\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "9230403"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "disk_usage('C:/Users/w/Desktop/python_pycharm')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 4.2 分析递归算法"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "递归算法分析起时间复杂度并不容易，在后面再具体看吧。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 4.3 递归算法的不足"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "递归往往会使解题思路变得很简单，但是使用不当会使算法效率低下。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "例子："
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "元素唯一性问题，可以设计这样一个递归算法，当序列长度为1时，显然唯一，这定义了递归的基线条件；当序列长度大于1时，可以将n个元素唯一性问题分解为前n-1个元素唯一且后n-1个元素唯一，且第一个元素和最后一个元素不相等。这个递归算法的效率很差，因为在判断n个元素唯一性问题时，需要判断两次更小的元素唯一性问题，但是这个更小只是问题规模减1，这就造成递归次数达到$2^n$，导致算法效率很差。同样的例子还有用递归直接实现斐波那契数列。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "根据上面的探讨，如果递归关系中，一化二及以上，那么问题的缩小规模应该相应达到指数级，否则算法效率很低。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "效率低的斐波那契数列递归算法："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "def bad_fibonacci(n):\n",
    "    if n <= 1:\n",
    "        return n\n",
    "    else:\n",
    "        return bad_fibonacci(n-2) + bad_fibonacci(n-1)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "为什么斐波那契数列可以有更好的递归算法：在上面编写的递归算法中，递归关系会将规模为n的问题分为规模为n-1和n-2的问题，分开解决，但是事实上，规模为n-2的问题，能给规模为n-1的问题的解决带来方便，如果忽略这一点，直接用递归将二者独立处理，那么算法的效率自然很差。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "高效的斐波那契递归算法：一次求取一对，避免将相邻元素分开导致重复计算。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "def good_fibonacci(n):\n",
    "    if n <= 1:\n",
    "        return n, 0\n",
    "    else:\n",
    "        a, b = good_fibonacci(n-1)\n",
    "        return a+b, a"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "上面算法，每次分为一个规模更小的问题，而不是一个以上，这是递归算法优化的一个方法，另一个方法应该是加快问题规模缩小的速度。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "递归算法需要防止无限递归，即要保证问题规模能通过一次又一次的递归达到基线条件。在Python中，为了防止无限递归，限制了最大递归深度，默认是1000，超过了会`raise RuntimeError('maximum recursion depth exceeded')`。一般情况下，这个递归深度是够用的，对于二分查找，每次缩小问题规模的一半，需要非常非常大的问题规模才能达到1000次递归，但是对于有些效率低且无法改进的算法，可能会超过1000次递归调用，这时可能需要修改递归深度限制。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "修改最大递归深度："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import sys\n",
    "\n",
    "old = sys.getrecursionlimit()\n",
    "sys.setrecursionlimit(100000)             ## 修改为100000次\n",
    "sys.setrecursionlimit(old)                ## 还原"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 4.4 递归的其他例子"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "1. 线性递归（linear recursion）：一个递归调用最多开启一个其他递归调用。\n",
    "2. 二路递归（binary recursion）：一个递归调用开启两个其他递归调用。（如果问题规模下降为常数速度，那么将导致指数级的递归调用数）\n",
    "3. 多重递归（multiple recursion）：一个递归调用开始三个或者更多其他递归调用。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 4.4.1 线性递归"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "在考虑一个递归算法的运行速度时，有两个方面需要考虑，一个是递归调用次数，一个是每次调用非递归部分运行时间。而递归调用次数又分别考虑一个递归产生几次递归以及问题规模的下降程度。上面的三个概念就是针对于一次递归产生几次递归，是递归算法时间复杂度分析的一部分。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "阶乘和二分查找（虽然通过中间元素将序列分为两半，但是通过要查找的元素与中间元素的大小关系，可以排除掉一半的元素，对剩下的一半元素调用递归，因此是一对一的）都是线性递归。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "例子：使用递归逆置序列。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "def reverse_recursion(sequence):\n",
    "    return sequence if len(sequence) == 1 else [sequence[-1]] + reverse_recursion(sequence[:len(sequence)-1])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[5, 4, 3, 2, 1]\n",
      "[3, 33, 10, 9, 23]\n"
     ]
    }
   ],
   "source": [
    "print(reverse_recursion([1, 2, 3, 4, 5]))\n",
    "print(reverse_recursion([23, 9, 10, 33, 3]))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "def reverse_recursion2(sequence, start, stop):\n",
    "    if stop - start <= 1:\n",
    "        return sequence\n",
    "    else:\n",
    "        sequence[start], sequence[stop-1] = sequence[stop-1], sequence[start]\n",
    "        return reverse_recursion2(sequence, start+1, stop-1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[1, 7, 6, 5, 4, 3, 2, 8, 9, 10]\n"
     ]
    }
   ],
   "source": [
    "print(reverse_recursion2([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 1, 7))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [],
   "source": [
    "def reverse_loop(sequence, start, stop):\n",
    "    while stop - start > 1:\n",
    "        sequence[start], sequence[stop-1] = sequence[stop-1], sequence[start]\n",
    "        start += 1\n",
    "        stop -= 1\n",
    "    return sequence"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[1, 7, 6, 5, 4, 3, 2, 8, 9, 10]\n"
     ]
    }
   ],
   "source": [
    "print(reverse_loop([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 1, 7))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "例子：使用递归算法计算幂（注意，如果每次递归调用非递归部分时间复杂度为O(1)，不随n的变化而变化，则不管是多大的常数，只要递归次数降下来，那么常数复杂点，算法的效率依然是提高了的）"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "O(n)："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [],
   "source": [
    "def power(x, n):\n",
    "    if n == 0:\n",
    "        return 1\n",
    "    else:\n",
    "        return x*power(x, n-1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "9\n",
      "8\n"
     ]
    }
   ],
   "source": [
    "print(power(3, 2))\n",
    "print(power(2, 3))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "O(log n):"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [],
   "source": [
    "def power2(x, n):\n",
    "    if n == 0:\n",
    "        return 1\n",
    "    elif n%2 == 0:\n",
    "        return power2(x, n/2)**2\n",
    "    else:\n",
    "        return x*power2(x, n//2)**2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "9\n",
      "8\n"
     ]
    }
   ],
   "source": [
    "print(power2(3, 2))\n",
    "print(power2(2, 3))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 4.4.2 二路递归"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "绘制英式标尺是二路递归的例子之一。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "递归调用的深度（与次数区分开来，次数要考虑一个递归产生多少次其他递归，而深度只需要考虑问题规模下降的速度）会影响额外空间的占用，若每一层递归调用都占用O(1)空间，那么递归深度小的算法，额外空间占用要优于递归调用次数多的算法。这在使用二路递归计算一个序列元素之和，与使用线性递归时的比较中有所体现。二路递归虽然增加每次产生递归的次数，但是问题规模缩小的速度同样增大了导致递归深度减小，占用额外空间也减小了。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 4.4.3 多重递归"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "文件系统磁盘空间使用情况是多重递归例子之一。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 4.5 设计递归算法"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "1. 搞清楚具体输入什么参数，输出什么，必要时需要稍微调整输入和输出，以便提高算法效率，如二分查找，如果不指定start和stop，那么就需要输入序列，而对序列的一半进行复制需要很多时间（O(n)），会使算法效率下降。\n",
    "2. 找到问题规模的描述，比如序列长度。\n",
    "3. 基线条件和递归关系。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 4.6 消除尾递归"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "算法设计的递归方法的主要优点是能够简洁地利用重复结构呈现诸多问题，通过使算法描述以递归的方式利用重复结构，经常可以避开复杂的案例分析和嵌套循环，得出可读性更强的算法描述。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "可以使用堆栈数据结构来管理递归结构自身的嵌套而不依赖于解释器，从而将递归算法转换为非递归算法，虽然只是将内存使用从解释器变到堆栈，但是也许能够通过只存储最小限度的必要信息来减少内存使用。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "尾递归（tail recursion）：递归的调用发生在return处，而且没有其他多余的操作，就是return下一次递归，不做其他运算包括加减乘除，也不做任何其他操作。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "任何尾递归都可以被非递归重新实现，如二分查找和序列逆置。尾递归在结尾return一个参数变化的递归函数，直到参数达到基线条件，其实可以用while循环来模拟，while循环的条件是基线条件，控制基线条件处停止，而while循环内部进行非递归操作，同时每次循环都模拟递归调用时的参数变化即可。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "上面给出了一个思路，有时候可以通过尾递归来设计非递归算法。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 4.7 练习"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "R-4.1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "def max_recursion(sequecne):\n",
    "    if len(sequecne) == 1:\n",
    "        return sequecne[0]\n",
    "    else:\n",
    "        return sequecne[0] if sequecne[0] > max_recursion(sequecne[1: ]) else max_recursion(sequecne[1: ])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "213\n",
      "432\n"
     ]
    }
   ],
   "source": [
    "print(max_recursion([23, 33, 1, 213, 3, 12, 212]))\n",
    "print(max_recursion([12, 5, 323, 1, 142, 432, 12, 21]))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "时间复杂度为O(n)，空间有待改进，因为每次都复制n-1长度的序列。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "def max_recursion2(sequence, n):\n",
    "    if len(sequence) == n+1:\n",
    "        return sequence[n-1]\n",
    "    else:\n",
    "        return sequence[n] if sequence[n] > max_recursion2(sequence, n+1) else max_recursion2(sequence, n+1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "213\n",
      "432\n"
     ]
    }
   ],
   "source": [
    "print(max_recursion2([23, 33, 1, 213, 3, 12, 212], 0))\n",
    "print(max_recursion2([12, 5, 323, 1, 142, 432, 12, 21], 0))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "为什么这个算法更好，因为上一个算法复制了一整个序列其实是浪费的，这一整个序列，就在原来的序列里，直接用一个索引值来节省空间。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "R-4.6"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "def sum_harmonic_number(n):\n",
    "    if n == 1:\n",
    "        return 1\n",
    "    else:\n",
    "        return 1/n + sum_harmonic_number(n-1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2.283333333333333\n",
      "2.9289682539682538\n"
     ]
    }
   ],
   "source": [
    "print(sum_harmonic_number(5))\n",
    "print(sum_harmonic_number(10))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "R-4.7"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [],
   "source": [
    "def transform_int(string, n):\n",
    "    if len(string) == n+1:\n",
    "        if string[n].isnumeric():\n",
    "            return string[n]\n",
    "        else:\n",
    "            return ''\n",
    "    else:\n",
    "        return string[n] + transform_int(string, n+1) if string[n].isnumeric() else transform_int(string, n+1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "134333221\n",
      "4231432112\n"
     ]
    }
   ],
   "source": [
    "print(transform_int('1343//332?,,21', 0))\n",
    "print(transform_int('42314.,/[]32\\\\[112e]', 0))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "C-4.9"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "def get_max_min(sequence, start):\n",
    "    if len(sequence) == start + 1:\n",
    "        return sequence[0], sequence[0]\n",
    "    else:\n",
    "        a = sequence[start] if sequence[start] > get_max_min(sequence, start + 1)[0] else get_max_min(sequence, start + 1)[0]\n",
    "        b = sequence[start] if sequence[start] < get_max_min(sequence, start + 1)[1] else get_max_min(sequence, start + 1)[1]\n",
    "        return a, b"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(213, 1)\n",
      "(432, 1)\n"
     ]
    }
   ],
   "source": [
    "print(get_max_min([23, 33, 1, 213, 3, 12, 212], 0))\n",
    "print(get_max_min([12, 5, 323, 1, 142, 432, 12, 21], 0))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "加入start参数避免因为切片而占用空间。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "C-4.10"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "def get_log_int(n):\n",
    "    if n < 2:\n",
    "        return 0\n",
    "    else:\n",
    "        return 1 + get_log_int(n//2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "3\n",
      "6\n"
     ]
    }
   ],
   "source": [
    "print(get_log_int(10))\n",
    "print(get_log_int(100))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "C-4.11"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "def is_unique(sequence, start):\n",
    "    if len(sequence) == start + 1:\n",
    "        return True\n",
    "    else:\n",
    "        return sequence[start] not in sequence[start+1: ] and is_unique(sequence, start+1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "True\n",
      "False\n"
     ]
    }
   ],
   "source": [
    "print(is_unique([1, 2, 3, 4], 0))\n",
    "print(is_unique([1, 2, 3, 3], 0))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "C-4.12"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "def times(m, n):\n",
    "    if n == 1:\n",
    "        return m\n",
    "    else:\n",
    "        return m + times(m, n-1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "50\n",
      "33\n"
     ]
    }
   ],
   "source": [
    "print(times(5, 10))\n",
    "print(times(3, 11))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "C-4.14"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "汉诺塔问题，假设有三根柱子，a、b、c，有n个金盘从下往上，从大到小堆叠在a柱子上，要将n个金盘从a柱挪到c柱，顺序不变，且过程中每一步只能移动一个金盘，大金盘不得堆在小金盘之上。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "这个问题直接思考是很难的，但是可以用递归实现，将n个金盘从a到c，就是先将n-1个金盘（除了最大的那个）从a到b（调用递归函数，参数n-1），再将最大的金盘放到c，然后将n-1个金盘从b到c（调用递归函数，参数n-1），然后就完成了。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "def hanoi(n, start, stop, transit):                        ## 输入金盘数、起点柱子、终点柱子和中转柱子\n",
    "    if n == 1:\n",
    "        print(start, '——>', stop)\n",
    "    else:\n",
    "        hanoi(n-1, start, transit, stop)\n",
    "        print(start, '——>', stop)\n",
    "        hanoi(n-1, transit, stop, start)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "3个柱子\n",
      "----------------------------------------\n",
      "a ——> c\n",
      "a ——> b\n",
      "c ——> b\n",
      "a ——> c\n",
      "b ——> a\n",
      "b ——> c\n",
      "a ——> c\n",
      "----------------------------------------\n",
      "6个柱子\n",
      "----------------------------------------\n",
      "a ——> b\n",
      "a ——> c\n",
      "b ——> c\n",
      "a ——> b\n",
      "c ——> a\n",
      "c ——> b\n",
      "a ——> b\n",
      "a ——> c\n",
      "b ——> c\n",
      "b ——> a\n",
      "c ——> a\n",
      "b ——> c\n",
      "a ——> b\n",
      "a ——> c\n",
      "b ——> c\n",
      "a ——> b\n",
      "c ——> a\n",
      "c ——> b\n",
      "a ——> b\n",
      "c ——> a\n",
      "b ——> c\n",
      "b ——> a\n",
      "c ——> a\n",
      "c ——> b\n",
      "a ——> b\n",
      "a ——> c\n",
      "b ——> c\n",
      "a ——> b\n",
      "c ——> a\n",
      "c ——> b\n",
      "a ——> b\n",
      "a ——> c\n",
      "b ——> c\n",
      "b ——> a\n",
      "c ——> a\n",
      "b ——> c\n",
      "a ——> b\n",
      "a ——> c\n",
      "b ——> c\n",
      "b ——> a\n",
      "c ——> a\n",
      "c ——> b\n",
      "a ——> b\n",
      "c ——> a\n",
      "b ——> c\n",
      "b ——> a\n",
      "c ——> a\n",
      "b ——> c\n",
      "a ——> b\n",
      "a ——> c\n",
      "b ——> c\n",
      "a ——> b\n",
      "c ——> a\n",
      "c ——> b\n",
      "a ——> b\n",
      "a ——> c\n",
      "b ——> c\n",
      "b ——> a\n",
      "c ——> a\n",
      "b ——> c\n",
      "a ——> b\n",
      "a ——> c\n",
      "b ——> c\n",
      "----------------------------------------\n"
     ]
    }
   ],
   "source": [
    "print('3个柱子')\n",
    "print('-' * 40)\n",
    "hanoi(3, 'a', 'c', 'b')\n",
    "print('-' * 40)\n",
    "print('6个柱子')\n",
    "print('-' * 40)\n",
    "hanoi(6, 'a', 'c', 'b')\n",
    "print('-' * 40)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "需要$2^n-1$步，时间复杂度$O(2^n)$。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "C-4.15"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "虽然是求集合子集，但是为了方便使用索引这一工具，我们可以先将集合转化为列表再传入。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "def subset(setlist, start):\n",
    "    if len(setlist) == start + 1:\n",
    "        return [(setlist[start], ), ()]\n",
    "    else:\n",
    "        b = []\n",
    "        a = subset(setlist, start+1) \n",
    "        for i in a:\n",
    "            b.append(i + (setlist[start], ))\n",
    "        return b+a"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "('e', 'd', 'c', 'b', 'a')\n",
      "('d', 'c', 'b', 'a')\n",
      "('e', 'c', 'b', 'a')\n",
      "('c', 'b', 'a')\n",
      "('e', 'd', 'b', 'a')\n",
      "('d', 'b', 'a')\n",
      "('e', 'b', 'a')\n",
      "('b', 'a')\n",
      "('e', 'd', 'c', 'a')\n",
      "('d', 'c', 'a')\n",
      "('e', 'c', 'a')\n",
      "('c', 'a')\n",
      "('e', 'd', 'a')\n",
      "('d', 'a')\n",
      "('e', 'a')\n",
      "('a',)\n",
      "('e', 'd', 'c', 'b')\n",
      "('d', 'c', 'b')\n",
      "('e', 'c', 'b')\n",
      "('c', 'b')\n",
      "('e', 'd', 'b')\n",
      "('d', 'b')\n",
      "('e', 'b')\n",
      "('b',)\n",
      "('e', 'd', 'c')\n",
      "('d', 'c')\n",
      "('e', 'c')\n",
      "('c',)\n",
      "('e', 'd')\n",
      "('d',)\n",
      "('e',)\n",
      "()\n"
     ]
    }
   ],
   "source": [
    "a = subset(['a', 'b', 'c', 'd', 'e'], 0)\n",
    "for i in a:\n",
    "    print(i)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "C-4.16"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "要注意一个问题，str类是不可变的，不能像列表逆置一样。只有list、set和dict是可变的。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [],
   "source": [
    "def reverse_string(string, start, stop):\n",
    "    if start == stop:\n",
    "        return string[start]\n",
    "    elif start > stop:\n",
    "        return ''\n",
    "    else:\n",
    "        return string[stop] + reverse_string(string, start+1, stop-1) + string[start]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "swjds;;33sdfba\n",
      "987654321\n"
     ]
    }
   ],
   "source": [
    "print(reverse_string('abfds33;;sdjws', 0, 13))\n",
    "print(reverse_string('123456789', 0, 8))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "C-4.17"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [],
   "source": [
    "def is_reverse_same(string, start, stop):\n",
    "    if start == stop or start < stop:\n",
    "        return True\n",
    "    else:\n",
    "        return string[start] == string[stop] and is_reverse_same(string, start+1, stop-1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "True\n",
      "True\n"
     ]
    }
   ],
   "source": [
    "print(is_reverse_same('123321', 0, 5))\n",
    "print(is_reverse_same('1234321', 0, 6))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "C-4.19"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [],
   "source": [
    "def permutation(sequence, start, stop):\n",
    "    if stop == start:\n",
    "        return sequence\n",
    "    else:\n",
    "        a = sequence[start]\n",
    "        if a%2 == 0:\n",
    "            start += 1\n",
    "        else:\n",
    "            del sequence[start]\n",
    "            sequence.append(a)\n",
    "            stop -= 1\n",
    "        return permutation(sequence, start, stop)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[2, 4, 6, 7, 1, 3, 5]\n",
      "[2122, 24, 12132, 21484, 49, 433, 2111, 23]\n"
     ]
    }
   ],
   "source": [
    "print(permutation([1, 2, 3, 4, 5, 6, 7], 0, 6))\n",
    "print(permutation([49, 2122, 433, 24, 2111, 23, 12132, 21484], 0, 7))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "C-4.20"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "def permutation2(sequence, start, stop, k):\n",
    "    if stop == start:\n",
    "        return sequence\n",
    "    else:\n",
    "        a = sequence[start]\n",
    "        if a <= k:\n",
    "            start += 1\n",
    "        else:\n",
    "            del sequence[start]\n",
    "            sequence.append(a)\n",
    "            stop -= 1\n",
    "        return permutation2(sequence, start, stop, k)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[1, 2, 3, 7, 4, 5, 6]\n",
      "[49, 24, 23, 21484, 2122, 433, 2111, 12132]\n"
     ]
    }
   ],
   "source": [
    "print(permutation2([1, 2, 3, 4, 5, 6, 7], 0, 6, 3))\n",
    "print(permutation2([49, 2122, 433, 24, 2111, 23, 12132, 21484], 0, 7, 100))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "算法时间复杂度为O(n)。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "C-4.21"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "def get_sum_k(sequence, start, k):\n",
    "    if len(sequence) == start + 1:\n",
    "        return []\n",
    "    elif len(sequence) == start + 2:\n",
    "        if sequence[-1]+sequence[-2] == k:\n",
    "            return [(sequence[-1], sequence[-2])]\n",
    "        else:\n",
    "            return []\n",
    "    else:\n",
    "        a = sequence[start]\n",
    "        b = get_sum_k(sequence, start+1, k)\n",
    "        for i in range(start, len(sequence)):\n",
    "            if sequence[i]+a == k:\n",
    "                b.append((sequence[i], a))\n",
    "            elif sequence[i]+a > k:\n",
    "                break\n",
    "        return b"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[(50, 50), (51, 49), (52, 48), (53, 47), (54, 46), (55, 45), (56, 44), (57, 43), (58, 42), (59, 41), (60, 40), (61, 39), (62, 38), (63, 37), (64, 36), (65, 35), (66, 34), (67, 33), (68, 32), (69, 31), (70, 30), (71, 29), (72, 28), (73, 27), (74, 26), (75, 25), (76, 24), (77, 23), (78, 22), (79, 21), (80, 20), (81, 19), (82, 18), (83, 17), (84, 16), (85, 15), (86, 14), (87, 13), (88, 12), (89, 11), (90, 10), (91, 9), (92, 8), (93, 7), (94, 6), (95, 5), (96, 4), (97, 3), (98, 2), (99, 1)]\n"
     ]
    }
   ],
   "source": [
    "print(get_sum_k(range(100), 0, 100))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "在最坏的情况下，算法时间复杂度为$O(n^2)$。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "C-4.22"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "def power_not_recursion(m, n):\n",
    "    result = 1\n",
    "    while n > 0:\n",
    "        result *= m\n",
    "        n -= 1\n",
    "    return result"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "8\n",
      "9\n"
     ]
    }
   ],
   "source": [
    "print(power_not_recursion(2, 3))\n",
    "print(power_not_recursion(3, 2))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "P-4.23"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [],
   "source": [
    "import os\n",
    "\n",
    "def find(path, filename):\n",
    "    if os.path.isdir(path):\n",
    "        for i in os.listdir(path):\n",
    "            childpath = os.path.join(path, i)\n",
    "            if os.path.isdir(childpath):\n",
    "                if find(childpath, filename):\n",
    "                    return True\n",
    "            elif i == filename:\n",
    "                return True\n",
    "    return False"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "True\n",
      "True\n"
     ]
    }
   ],
   "source": [
    "print(find('C:/Users/w/Desktop/python_jupyter', '第二章 面向对象编程.ipynb'))\n",
    "print(find('C:/Users/w/Desktop/R', '问卷分析.html'))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "P-4.24"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "谜题：\n",
    "\n",
    "1. pot + pan = bib\n",
    "2. dog + cat = pig\n",
    "3. boy + girl = baby\n",
    "\n",
    "给字母分配0-9的不同正整数，使等式成立，这里用枚举法。\n",
    "\n",
    "按顺序分配索引：\n",
    "\n",
    "p-i o-j t-x a-y n-z b-t i-m"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "第 1 种解法： p = 0; o = 2; t = 3; a = 7; n = 8; b = 1; i = 0 等式为： 23 + 78 = 101\n",
      "第 2 种解法： p = 0; o = 2; t = 3; a = 9; n = 8; b = 1; i = 2 等式为： 23 + 98 = 121\n",
      "第 3 种解法： p = 0; o = 2; t = 4; a = 8; n = 7; b = 1; i = 1 等式为： 24 + 87 = 111\n",
      "第 4 种解法： p = 0; o = 2; t = 4; a = 9; n = 7; b = 1; i = 2 等式为： 24 + 97 = 121\n",
      "第 5 种解法： p = 0; o = 2; t = 5; a = 7; n = 6; b = 1; i = 0 等式为： 25 + 76 = 101\n",
      "第 6 种解法： p = 0; o = 2; t = 5; a = 8; n = 6; b = 1; i = 1 等式为： 25 + 86 = 111\n",
      "第 7 种解法： p = 0; o = 2; t = 5; a = 9; n = 6; b = 1; i = 2 等式为： 25 + 96 = 121\n",
      "第 8 种解法： p = 0; o = 2; t = 6; a = 7; n = 5; b = 1; i = 0 等式为： 26 + 75 = 101\n",
      "第 9 种解法： p = 0; o = 2; t = 6; a = 8; n = 5; b = 1; i = 1 等式为： 26 + 85 = 111\n",
      "第 10 种解法： p = 0; o = 2; t = 6; a = 9; n = 5; b = 1; i = 2 等式为： 26 + 95 = 121\n",
      "第 11 种解法： p = 0; o = 2; t = 7; a = 8; n = 4; b = 1; i = 1 等式为： 27 + 84 = 111\n",
      "第 12 种解法： p = 0; o = 2; t = 7; a = 9; n = 4; b = 1; i = 2 等式为： 27 + 94 = 121\n",
      "第 13 种解法： p = 0; o = 2; t = 8; a = 7; n = 3; b = 1; i = 0 等式为： 28 + 73 = 101\n",
      "第 14 种解法： p = 0; o = 2; t = 8; a = 9; n = 3; b = 1; i = 2 等式为： 28 + 93 = 121\n",
      "第 15 种解法： p = 0; o = 3; t = 2; a = 6; n = 9; b = 1; i = 0 等式为： 32 + 69 = 101\n",
      "第 16 种解法： p = 0; o = 3; t = 2; a = 7; n = 9; b = 1; i = 1 等式为： 32 + 79 = 111\n",
      "第 17 种解法： p = 0; o = 3; t = 2; a = 8; n = 9; b = 1; i = 2 等式为： 32 + 89 = 121\n",
      "第 18 种解法： p = 0; o = 3; t = 4; a = 6; n = 7; b = 1; i = 0 等式为： 34 + 67 = 101\n",
      "第 19 种解法： p = 0; o = 3; t = 4; a = 8; n = 7; b = 1; i = 2 等式为： 34 + 87 = 121\n",
      "第 20 种解法： p = 0; o = 3; t = 4; a = 9; n = 7; b = 1; i = 3 等式为： 34 + 97 = 131\n",
      "第 21 种解法： p = 0; o = 3; t = 5; a = 7; n = 6; b = 1; i = 1 等式为： 35 + 76 = 111\n",
      "第 22 种解法： p = 0; o = 3; t = 5; a = 8; n = 6; b = 1; i = 2 等式为： 35 + 86 = 121\n",
      "第 23 种解法： p = 0; o = 3; t = 5; a = 9; n = 6; b = 1; i = 3 等式为： 35 + 96 = 131\n",
      "第 24 种解法： p = 0; o = 3; t = 6; a = 7; n = 5; b = 1; i = 1 等式为： 36 + 75 = 111\n",
      "第 25 种解法： p = 0; o = 3; t = 6; a = 8; n = 5; b = 1; i = 2 等式为： 36 + 85 = 121\n",
      "第 26 种解法： p = 0; o = 3; t = 6; a = 9; n = 5; b = 1; i = 3 等式为： 36 + 95 = 131\n",
      "第 27 种解法： p = 0; o = 3; t = 7; a = 6; n = 4; b = 1; i = 0 等式为： 37 + 64 = 101\n",
      "第 28 种解法： p = 0; o = 3; t = 7; a = 8; n = 4; b = 1; i = 2 等式为： 37 + 84 = 121\n",
      "第 29 种解法： p = 0; o = 3; t = 7; a = 9; n = 4; b = 1; i = 3 等式为： 37 + 94 = 131\n",
      "第 30 种解法： p = 0; o = 3; t = 9; a = 6; n = 2; b = 1; i = 0 等式为： 39 + 62 = 101\n",
      "第 31 种解法： p = 0; o = 3; t = 9; a = 7; n = 2; b = 1; i = 1 等式为： 39 + 72 = 111\n",
      "第 32 种解法： p = 0; o = 3; t = 9; a = 8; n = 2; b = 1; i = 2 等式为： 39 + 82 = 121\n",
      "第 33 种解法： p = 0; o = 4; t = 2; a = 5; n = 9; b = 1; i = 0 等式为： 42 + 59 = 101\n",
      "第 34 种解法： p = 0; o = 4; t = 2; a = 6; n = 9; b = 1; i = 1 等式为： 42 + 69 = 111\n",
      "第 35 种解法： p = 0; o = 4; t = 2; a = 7; n = 9; b = 1; i = 2 等式为： 42 + 79 = 121\n",
      "第 36 种解法： p = 0; o = 4; t = 2; a = 8; n = 9; b = 1; i = 3 等式为： 42 + 89 = 131\n",
      "第 37 种解法： p = 0; o = 4; t = 3; a = 5; n = 8; b = 1; i = 0 等式为： 43 + 58 = 101\n",
      "第 38 种解法： p = 0; o = 4; t = 3; a = 6; n = 8; b = 1; i = 1 等式为： 43 + 68 = 111\n",
      "第 39 种解法： p = 0; o = 4; t = 3; a = 7; n = 8; b = 1; i = 2 等式为： 43 + 78 = 121\n",
      "第 40 种解法： p = 0; o = 4; t = 3; a = 9; n = 8; b = 1; i = 4 等式为： 43 + 98 = 141\n",
      "第 41 种解法： p = 0; o = 4; t = 5; a = 7; n = 6; b = 1; i = 2 等式为： 45 + 76 = 121\n",
      "第 42 种解法： p = 0; o = 4; t = 5; a = 8; n = 6; b = 1; i = 3 等式为： 45 + 86 = 131\n",
      "第 43 种解法： p = 0; o = 4; t = 5; a = 9; n = 6; b = 1; i = 4 等式为： 45 + 96 = 141\n",
      "第 44 种解法： p = 0; o = 4; t = 6; a = 7; n = 5; b = 1; i = 2 等式为： 46 + 75 = 121\n",
      "第 45 种解法： p = 0; o = 4; t = 6; a = 8; n = 5; b = 1; i = 3 等式为： 46 + 85 = 131\n",
      "第 46 种解法： p = 0; o = 4; t = 6; a = 9; n = 5; b = 1; i = 4 等式为： 46 + 95 = 141\n",
      "第 47 种解法： p = 0; o = 4; t = 8; a = 5; n = 3; b = 1; i = 0 等式为： 48 + 53 = 101\n",
      "第 48 种解法： p = 0; o = 4; t = 8; a = 6; n = 3; b = 1; i = 1 等式为： 48 + 63 = 111\n",
      "第 49 种解法： p = 0; o = 4; t = 8; a = 7; n = 3; b = 1; i = 2 等式为： 48 + 73 = 121\n",
      "第 50 种解法： p = 0; o = 4; t = 8; a = 9; n = 3; b = 1; i = 4 等式为： 48 + 93 = 141\n",
      "第 51 种解法： p = 0; o = 4; t = 9; a = 5; n = 2; b = 1; i = 0 等式为： 49 + 52 = 101\n",
      "第 52 种解法： p = 0; o = 4; t = 9; a = 6; n = 2; b = 1; i = 1 等式为： 49 + 62 = 111\n",
      "第 53 种解法： p = 0; o = 4; t = 9; a = 7; n = 2; b = 1; i = 2 等式为： 49 + 72 = 121\n",
      "第 54 种解法： p = 0; o = 4; t = 9; a = 8; n = 2; b = 1; i = 3 等式为： 49 + 82 = 131\n",
      "第 55 种解法： p = 0; o = 5; t = 2; a = 4; n = 9; b = 1; i = 0 等式为： 52 + 49 = 101\n",
      "第 56 种解法： p = 0; o = 5; t = 2; a = 6; n = 9; b = 1; i = 2 等式为： 52 + 69 = 121\n",
      "第 57 种解法： p = 0; o = 5; t = 2; a = 7; n = 9; b = 1; i = 3 等式为： 52 + 79 = 131\n",
      "第 58 种解法： p = 0; o = 5; t = 2; a = 8; n = 9; b = 1; i = 4 等式为： 52 + 89 = 141\n",
      "第 59 种解法： p = 0; o = 5; t = 3; a = 4; n = 8; b = 1; i = 0 等式为： 53 + 48 = 101\n",
      "第 60 种解法： p = 0; o = 5; t = 3; a = 6; n = 8; b = 1; i = 2 等式为： 53 + 68 = 121\n",
      "第 61 种解法： p = 0; o = 5; t = 3; a = 7; n = 8; b = 1; i = 3 等式为： 53 + 78 = 131\n",
      "第 62 种解法： p = 0; o = 5; t = 3; a = 9; n = 8; b = 1; i = 5 等式为： 53 + 98 = 151\n",
      "第 63 种解法： p = 0; o = 5; t = 4; a = 6; n = 7; b = 1; i = 2 等式为： 54 + 67 = 121\n",
      "第 64 种解法： p = 0; o = 5; t = 4; a = 8; n = 7; b = 1; i = 4 等式为： 54 + 87 = 141\n",
      "第 65 种解法： p = 0; o = 5; t = 4; a = 9; n = 7; b = 1; i = 5 等式为： 54 + 97 = 151\n",
      "第 66 种解法： p = 0; o = 5; t = 7; a = 6; n = 4; b = 1; i = 2 等式为： 57 + 64 = 121\n",
      "第 67 种解法： p = 0; o = 5; t = 7; a = 8; n = 4; b = 1; i = 4 等式为： 57 + 84 = 141\n",
      "第 68 种解法： p = 0; o = 5; t = 7; a = 9; n = 4; b = 1; i = 5 等式为： 57 + 94 = 151\n",
      "第 69 种解法： p = 0; o = 5; t = 8; a = 4; n = 3; b = 1; i = 0 等式为： 58 + 43 = 101\n",
      "第 70 种解法： p = 0; o = 5; t = 8; a = 6; n = 3; b = 1; i = 2 等式为： 58 + 63 = 121\n",
      "第 71 种解法： p = 0; o = 5; t = 8; a = 7; n = 3; b = 1; i = 3 等式为： 58 + 73 = 131\n",
      "第 72 种解法： p = 0; o = 5; t = 8; a = 9; n = 3; b = 1; i = 5 等式为： 58 + 93 = 151\n",
      "第 73 种解法： p = 0; o = 5; t = 9; a = 4; n = 2; b = 1; i = 0 等式为： 59 + 42 = 101\n",
      "第 74 种解法： p = 0; o = 5; t = 9; a = 6; n = 2; b = 1; i = 2 等式为： 59 + 62 = 121\n",
      "第 75 种解法： p = 0; o = 5; t = 9; a = 7; n = 2; b = 1; i = 3 等式为： 59 + 72 = 131\n",
      "第 76 种解法： p = 0; o = 5; t = 9; a = 8; n = 2; b = 1; i = 4 等式为： 59 + 82 = 141\n",
      "第 77 种解法： p = 0; o = 6; t = 2; a = 3; n = 9; b = 1; i = 0 等式为： 62 + 39 = 101\n",
      "第 78 种解法： p = 0; o = 6; t = 2; a = 4; n = 9; b = 1; i = 1 等式为： 62 + 49 = 111\n",
      "第 79 种解法： p = 0; o = 6; t = 2; a = 5; n = 9; b = 1; i = 2 等式为： 62 + 59 = 121\n",
      "第 80 种解法： p = 0; o = 6; t = 2; a = 7; n = 9; b = 1; i = 4 等式为： 62 + 79 = 141\n",
      "第 81 种解法： p = 0; o = 6; t = 2; a = 8; n = 9; b = 1; i = 5 等式为： 62 + 89 = 151\n",
      "第 82 种解法： p = 0; o = 6; t = 3; a = 4; n = 8; b = 1; i = 1 等式为： 63 + 48 = 111\n",
      "第 83 种解法： p = 0; o = 6; t = 3; a = 5; n = 8; b = 1; i = 2 等式为： 63 + 58 = 121\n",
      "第 84 种解法： p = 0; o = 6; t = 3; a = 7; n = 8; b = 1; i = 4 等式为： 63 + 78 = 141\n",
      "第 85 种解法： p = 0; o = 6; t = 3; a = 9; n = 8; b = 1; i = 6 等式为： 63 + 98 = 161\n",
      "第 86 种解法： p = 0; o = 6; t = 4; a = 3; n = 7; b = 1; i = 0 等式为： 64 + 37 = 101\n",
      "第 87 种解法： p = 0; o = 6; t = 4; a = 5; n = 7; b = 1; i = 2 等式为： 64 + 57 = 121\n",
      "第 88 种解法： p = 0; o = 6; t = 4; a = 8; n = 7; b = 1; i = 5 等式为： 64 + 87 = 151\n",
      "第 89 种解法： p = 0; o = 6; t = 4; a = 9; n = 7; b = 1; i = 6 等式为： 64 + 97 = 161\n",
      "第 90 种解法： p = 0; o = 6; t = 7; a = 3; n = 4; b = 1; i = 0 等式为： 67 + 34 = 101\n",
      "第 91 种解法： p = 0; o = 6; t = 7; a = 5; n = 4; b = 1; i = 2 等式为： 67 + 54 = 121\n",
      "第 92 种解法： p = 0; o = 6; t = 7; a = 8; n = 4; b = 1; i = 5 等式为： 67 + 84 = 151\n",
      "第 93 种解法： p = 0; o = 6; t = 7; a = 9; n = 4; b = 1; i = 6 等式为： 67 + 94 = 161\n",
      "第 94 种解法： p = 0; o = 6; t = 8; a = 4; n = 3; b = 1; i = 1 等式为： 68 + 43 = 111\n",
      "第 95 种解法： p = 0; o = 6; t = 8; a = 5; n = 3; b = 1; i = 2 等式为： 68 + 53 = 121\n",
      "第 96 种解法： p = 0; o = 6; t = 8; a = 7; n = 3; b = 1; i = 4 等式为： 68 + 73 = 141\n",
      "第 97 种解法： p = 0; o = 6; t = 8; a = 9; n = 3; b = 1; i = 6 等式为： 68 + 93 = 161\n",
      "第 98 种解法： p = 0; o = 6; t = 9; a = 3; n = 2; b = 1; i = 0 等式为： 69 + 32 = 101\n",
      "第 99 种解法： p = 0; o = 6; t = 9; a = 4; n = 2; b = 1; i = 1 等式为： 69 + 42 = 111\n",
      "第 100 种解法： p = 0; o = 6; t = 9; a = 5; n = 2; b = 1; i = 2 等式为： 69 + 52 = 121\n",
      "第 101 种解法： p = 0; o = 6; t = 9; a = 7; n = 2; b = 1; i = 4 等式为： 69 + 72 = 141\n",
      "第 102 种解法： p = 0; o = 6; t = 9; a = 8; n = 2; b = 1; i = 5 等式为： 69 + 82 = 151\n",
      "第 103 种解法： p = 0; o = 7; t = 2; a = 3; n = 9; b = 1; i = 1 等式为： 72 + 39 = 111\n",
      "第 104 种解法： p = 0; o = 7; t = 2; a = 4; n = 9; b = 1; i = 2 等式为： 72 + 49 = 121\n",
      "第 105 种解法： p = 0; o = 7; t = 2; a = 5; n = 9; b = 1; i = 3 等式为： 72 + 59 = 131\n",
      "第 106 种解法： p = 0; o = 7; t = 2; a = 6; n = 9; b = 1; i = 4 等式为： 72 + 69 = 141\n",
      "第 107 种解法： p = 0; o = 7; t = 2; a = 8; n = 9; b = 1; i = 6 等式为： 72 + 89 = 161\n",
      "第 108 种解法： p = 0; o = 7; t = 3; a = 2; n = 8; b = 1; i = 0 等式为： 73 + 28 = 101\n",
      "第 109 种解法： p = 0; o = 7; t = 3; a = 4; n = 8; b = 1; i = 2 等式为： 73 + 48 = 121\n",
      "第 110 种解法： p = 0; o = 7; t = 3; a = 5; n = 8; b = 1; i = 3 等式为： 73 + 58 = 131\n",
      "第 111 种解法： p = 0; o = 7; t = 3; a = 6; n = 8; b = 1; i = 4 等式为： 73 + 68 = 141\n",
      "第 112 种解法： p = 0; o = 7; t = 3; a = 9; n = 8; b = 1; i = 7 等式为： 73 + 98 = 171\n",
      "第 113 种解法： p = 0; o = 7; t = 5; a = 2; n = 6; b = 1; i = 0 等式为： 75 + 26 = 101\n",
      "第 114 种解法： p = 0; o = 7; t = 5; a = 3; n = 6; b = 1; i = 1 等式为： 75 + 36 = 111\n",
      "第 115 种解法： p = 0; o = 7; t = 5; a = 4; n = 6; b = 1; i = 2 等式为： 75 + 46 = 121\n",
      "第 116 种解法： p = 0; o = 7; t = 5; a = 8; n = 6; b = 1; i = 6 等式为： 75 + 86 = 161\n",
      "第 117 种解法： p = 0; o = 7; t = 5; a = 9; n = 6; b = 1; i = 7 等式为： 75 + 96 = 171\n",
      "第 118 种解法： p = 0; o = 7; t = 6; a = 2; n = 5; b = 1; i = 0 等式为： 76 + 25 = 101\n",
      "第 119 种解法： p = 0; o = 7; t = 6; a = 3; n = 5; b = 1; i = 1 等式为： 76 + 35 = 111\n",
      "第 120 种解法： p = 0; o = 7; t = 6; a = 4; n = 5; b = 1; i = 2 等式为： 76 + 45 = 121\n",
      "第 121 种解法： p = 0; o = 7; t = 6; a = 8; n = 5; b = 1; i = 6 等式为： 76 + 85 = 161\n",
      "第 122 种解法： p = 0; o = 7; t = 6; a = 9; n = 5; b = 1; i = 7 等式为： 76 + 95 = 171\n",
      "第 123 种解法： p = 0; o = 7; t = 8; a = 2; n = 3; b = 1; i = 0 等式为： 78 + 23 = 101\n",
      "第 124 种解法： p = 0; o = 7; t = 8; a = 4; n = 3; b = 1; i = 2 等式为： 78 + 43 = 121\n",
      "第 125 种解法： p = 0; o = 7; t = 8; a = 5; n = 3; b = 1; i = 3 等式为： 78 + 53 = 131\n",
      "第 126 种解法： p = 0; o = 7; t = 8; a = 6; n = 3; b = 1; i = 4 等式为： 78 + 63 = 141\n",
      "第 127 种解法： p = 0; o = 7; t = 8; a = 9; n = 3; b = 1; i = 7 等式为： 78 + 93 = 171\n",
      "第 128 种解法： p = 0; o = 7; t = 9; a = 3; n = 2; b = 1; i = 1 等式为： 79 + 32 = 111\n",
      "第 129 种解法： p = 0; o = 7; t = 9; a = 4; n = 2; b = 1; i = 2 等式为： 79 + 42 = 121\n",
      "第 130 种解法： p = 0; o = 7; t = 9; a = 5; n = 2; b = 1; i = 3 等式为： 79 + 52 = 131\n",
      "第 131 种解法： p = 0; o = 7; t = 9; a = 6; n = 2; b = 1; i = 4 等式为： 79 + 62 = 141\n",
      "第 132 种解法： p = 0; o = 7; t = 9; a = 8; n = 2; b = 1; i = 6 等式为： 79 + 82 = 161\n",
      "第 133 种解法： p = 0; o = 8; t = 2; a = 3; n = 9; b = 1; i = 2 等式为： 82 + 39 = 121\n",
      "第 134 种解法： p = 0; o = 8; t = 2; a = 4; n = 9; b = 1; i = 3 等式为： 82 + 49 = 131\n",
      "第 135 种解法： p = 0; o = 8; t = 2; a = 5; n = 9; b = 1; i = 4 等式为： 82 + 59 = 141\n",
      "第 136 种解法： p = 0; o = 8; t = 2; a = 6; n = 9; b = 1; i = 5 等式为： 82 + 69 = 151\n",
      "第 137 种解法： p = 0; o = 8; t = 2; a = 7; n = 9; b = 1; i = 6 等式为： 82 + 79 = 161\n",
      "第 138 种解法： p = 0; o = 8; t = 4; a = 2; n = 7; b = 1; i = 1 等式为： 84 + 27 = 111\n",
      "第 139 种解法： p = 0; o = 8; t = 4; a = 3; n = 7; b = 1; i = 2 等式为： 84 + 37 = 121\n",
      "第 140 种解法： p = 0; o = 8; t = 4; a = 5; n = 7; b = 1; i = 4 等式为： 84 + 57 = 141\n",
      "第 141 种解法： p = 0; o = 8; t = 4; a = 6; n = 7; b = 1; i = 5 等式为： 84 + 67 = 151\n",
      "第 142 种解法： p = 0; o = 8; t = 4; a = 9; n = 7; b = 1; i = 8 等式为： 84 + 97 = 181\n",
      "第 143 种解法： p = 0; o = 8; t = 5; a = 2; n = 6; b = 1; i = 1 等式为： 85 + 26 = 111\n",
      "第 144 种解法： p = 0; o = 8; t = 5; a = 3; n = 6; b = 1; i = 2 等式为： 85 + 36 = 121\n",
      "第 145 种解法： p = 0; o = 8; t = 5; a = 4; n = 6; b = 1; i = 3 等式为： 85 + 46 = 131\n",
      "第 146 种解法： p = 0; o = 8; t = 5; a = 7; n = 6; b = 1; i = 6 等式为： 85 + 76 = 161\n",
      "第 147 种解法： p = 0; o = 8; t = 5; a = 9; n = 6; b = 1; i = 8 等式为： 85 + 96 = 181\n",
      "第 148 种解法： p = 0; o = 8; t = 6; a = 2; n = 5; b = 1; i = 1 等式为： 86 + 25 = 111\n",
      "第 149 种解法： p = 0; o = 8; t = 6; a = 3; n = 5; b = 1; i = 2 等式为： 86 + 35 = 121\n",
      "第 150 种解法： p = 0; o = 8; t = 6; a = 4; n = 5; b = 1; i = 3 等式为： 86 + 45 = 131\n",
      "第 151 种解法： p = 0; o = 8; t = 6; a = 7; n = 5; b = 1; i = 6 等式为： 86 + 75 = 161\n",
      "第 152 种解法： p = 0; o = 8; t = 6; a = 9; n = 5; b = 1; i = 8 等式为： 86 + 95 = 181\n",
      "第 153 种解法： p = 0; o = 8; t = 7; a = 2; n = 4; b = 1; i = 1 等式为： 87 + 24 = 111\n",
      "第 154 种解法： p = 0; o = 8; t = 7; a = 3; n = 4; b = 1; i = 2 等式为： 87 + 34 = 121\n",
      "第 155 种解法： p = 0; o = 8; t = 7; a = 5; n = 4; b = 1; i = 4 等式为： 87 + 54 = 141\n",
      "第 156 种解法： p = 0; o = 8; t = 7; a = 6; n = 4; b = 1; i = 5 等式为： 87 + 64 = 151\n",
      "第 157 种解法： p = 0; o = 8; t = 7; a = 9; n = 4; b = 1; i = 8 等式为： 87 + 94 = 181\n",
      "第 158 种解法： p = 0; o = 8; t = 9; a = 3; n = 2; b = 1; i = 2 等式为： 89 + 32 = 121\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "第 159 种解法： p = 0; o = 8; t = 9; a = 4; n = 2; b = 1; i = 3 等式为： 89 + 42 = 131\n",
      "第 160 种解法： p = 0; o = 8; t = 9; a = 5; n = 2; b = 1; i = 4 等式为： 89 + 52 = 141\n",
      "第 161 种解法： p = 0; o = 8; t = 9; a = 6; n = 2; b = 1; i = 5 等式为： 89 + 62 = 151\n",
      "第 162 种解法： p = 0; o = 8; t = 9; a = 7; n = 2; b = 1; i = 6 等式为： 89 + 72 = 161\n",
      "第 163 种解法： p = 0; o = 9; t = 3; a = 2; n = 8; b = 1; i = 2 等式为： 93 + 28 = 121\n",
      "第 164 种解法： p = 0; o = 9; t = 3; a = 4; n = 8; b = 1; i = 4 等式为： 93 + 48 = 141\n",
      "第 165 种解法： p = 0; o = 9; t = 3; a = 5; n = 8; b = 1; i = 5 等式为： 93 + 58 = 151\n",
      "第 166 种解法： p = 0; o = 9; t = 3; a = 6; n = 8; b = 1; i = 6 等式为： 93 + 68 = 161\n",
      "第 167 种解法： p = 0; o = 9; t = 3; a = 7; n = 8; b = 1; i = 7 等式为： 93 + 78 = 171\n",
      "第 168 种解法： p = 0; o = 9; t = 4; a = 2; n = 7; b = 1; i = 2 等式为： 94 + 27 = 121\n",
      "第 169 种解法： p = 0; o = 9; t = 4; a = 3; n = 7; b = 1; i = 3 等式为： 94 + 37 = 131\n",
      "第 170 种解法： p = 0; o = 9; t = 4; a = 5; n = 7; b = 1; i = 5 等式为： 94 + 57 = 151\n",
      "第 171 种解法： p = 0; o = 9; t = 4; a = 6; n = 7; b = 1; i = 6 等式为： 94 + 67 = 161\n",
      "第 172 种解法： p = 0; o = 9; t = 4; a = 8; n = 7; b = 1; i = 8 等式为： 94 + 87 = 181\n",
      "第 173 种解法： p = 0; o = 9; t = 5; a = 2; n = 6; b = 1; i = 2 等式为： 95 + 26 = 121\n",
      "第 174 种解法： p = 0; o = 9; t = 5; a = 3; n = 6; b = 1; i = 3 等式为： 95 + 36 = 131\n",
      "第 175 种解法： p = 0; o = 9; t = 5; a = 4; n = 6; b = 1; i = 4 等式为： 95 + 46 = 141\n",
      "第 176 种解法： p = 0; o = 9; t = 5; a = 7; n = 6; b = 1; i = 7 等式为： 95 + 76 = 171\n",
      "第 177 种解法： p = 0; o = 9; t = 5; a = 8; n = 6; b = 1; i = 8 等式为： 95 + 86 = 181\n",
      "第 178 种解法： p = 0; o = 9; t = 6; a = 2; n = 5; b = 1; i = 2 等式为： 96 + 25 = 121\n",
      "第 179 种解法： p = 0; o = 9; t = 6; a = 3; n = 5; b = 1; i = 3 等式为： 96 + 35 = 131\n",
      "第 180 种解法： p = 0; o = 9; t = 6; a = 4; n = 5; b = 1; i = 4 等式为： 96 + 45 = 141\n",
      "第 181 种解法： p = 0; o = 9; t = 6; a = 7; n = 5; b = 1; i = 7 等式为： 96 + 75 = 171\n",
      "第 182 种解法： p = 0; o = 9; t = 6; a = 8; n = 5; b = 1; i = 8 等式为： 96 + 85 = 181\n",
      "第 183 种解法： p = 0; o = 9; t = 7; a = 2; n = 4; b = 1; i = 2 等式为： 97 + 24 = 121\n",
      "第 184 种解法： p = 0; o = 9; t = 7; a = 3; n = 4; b = 1; i = 3 等式为： 97 + 34 = 131\n",
      "第 185 种解法： p = 0; o = 9; t = 7; a = 5; n = 4; b = 1; i = 5 等式为： 97 + 54 = 151\n",
      "第 186 种解法： p = 0; o = 9; t = 7; a = 6; n = 4; b = 1; i = 6 等式为： 97 + 64 = 161\n",
      "第 187 种解法： p = 0; o = 9; t = 7; a = 8; n = 4; b = 1; i = 8 等式为： 97 + 84 = 181\n",
      "第 188 种解法： p = 0; o = 9; t = 8; a = 2; n = 3; b = 1; i = 2 等式为： 98 + 23 = 121\n",
      "第 189 种解法： p = 0; o = 9; t = 8; a = 4; n = 3; b = 1; i = 4 等式为： 98 + 43 = 141\n",
      "第 190 种解法： p = 0; o = 9; t = 8; a = 5; n = 3; b = 1; i = 5 等式为： 98 + 53 = 151\n",
      "第 191 种解法： p = 0; o = 9; t = 8; a = 6; n = 3; b = 1; i = 6 等式为： 98 + 63 = 161\n",
      "第 192 种解法： p = 0; o = 9; t = 8; a = 7; n = 3; b = 1; i = 7 等式为： 98 + 73 = 171\n",
      "第 193 种解法： p = 1; o = 0; t = 3; a = 4; n = 9; b = 2; i = 5 等式为： 103 + 149 = 252\n",
      "第 194 种解法： p = 1; o = 0; t = 3; a = 5; n = 9; b = 2; i = 6 等式为： 103 + 159 = 262\n",
      "第 195 种解法： p = 1; o = 0; t = 3; a = 6; n = 9; b = 2; i = 7 等式为： 103 + 169 = 272\n",
      "第 196 种解法： p = 1; o = 0; t = 3; a = 7; n = 9; b = 2; i = 8 等式为： 103 + 179 = 282\n",
      "第 197 种解法： p = 1; o = 0; t = 3; a = 8; n = 9; b = 2; i = 9 等式为： 103 + 189 = 292\n",
      "第 198 种解法： p = 1; o = 0; t = 4; a = 3; n = 8; b = 2; i = 4 等式为： 104 + 138 = 242\n",
      "第 199 种解法： p = 1; o = 0; t = 4; a = 5; n = 8; b = 2; i = 6 等式为： 104 + 158 = 262\n",
      "第 200 种解法： p = 1; o = 0; t = 4; a = 6; n = 8; b = 2; i = 7 等式为： 104 + 168 = 272\n",
      "第 201 种解法： p = 1; o = 0; t = 4; a = 7; n = 8; b = 2; i = 8 等式为： 104 + 178 = 282\n",
      "第 202 种解法： p = 1; o = 0; t = 5; a = 3; n = 7; b = 2; i = 4 等式为： 105 + 137 = 242\n",
      "第 203 种解法： p = 1; o = 0; t = 5; a = 4; n = 7; b = 2; i = 5 等式为： 105 + 147 = 252\n",
      "第 204 种解法： p = 1; o = 0; t = 5; a = 6; n = 7; b = 2; i = 7 等式为： 105 + 167 = 272\n",
      "第 205 种解法： p = 1; o = 0; t = 5; a = 8; n = 7; b = 2; i = 9 等式为： 105 + 187 = 292\n",
      "第 206 种解法： p = 1; o = 0; t = 5; a = 9; n = 8; b = 3; i = 0 等式为： 105 + 198 = 303\n",
      "第 207 种解法： p = 1; o = 0; t = 6; a = 9; n = 7; b = 3; i = 0 等式为： 106 + 197 = 303\n",
      "第 208 种解法： p = 1; o = 0; t = 7; a = 3; n = 5; b = 2; i = 4 等式为： 107 + 135 = 242\n",
      "第 209 种解法： p = 1; o = 0; t = 7; a = 4; n = 5; b = 2; i = 5 等式为： 107 + 145 = 252\n",
      "第 210 种解法： p = 1; o = 0; t = 7; a = 6; n = 5; b = 2; i = 7 等式为： 107 + 165 = 272\n",
      "第 211 种解法： p = 1; o = 0; t = 7; a = 8; n = 5; b = 2; i = 9 等式为： 107 + 185 = 292\n",
      "第 212 种解法： p = 1; o = 0; t = 7; a = 9; n = 6; b = 3; i = 0 等式为： 107 + 196 = 303\n",
      "第 213 种解法： p = 1; o = 0; t = 8; a = 3; n = 4; b = 2; i = 4 等式为： 108 + 134 = 242\n",
      "第 214 种解法： p = 1; o = 0; t = 8; a = 5; n = 4; b = 2; i = 6 等式为： 108 + 154 = 262\n",
      "第 215 种解法： p = 1; o = 0; t = 8; a = 6; n = 4; b = 2; i = 7 等式为： 108 + 164 = 272\n",
      "第 216 种解法： p = 1; o = 0; t = 8; a = 7; n = 4; b = 2; i = 8 等式为： 108 + 174 = 282\n",
      "第 217 种解法： p = 1; o = 0; t = 8; a = 9; n = 5; b = 3; i = 0 等式为： 108 + 195 = 303\n",
      "第 218 种解法： p = 1; o = 0; t = 9; a = 4; n = 3; b = 2; i = 5 等式为： 109 + 143 = 252\n",
      "第 219 种解法： p = 1; o = 0; t = 9; a = 5; n = 3; b = 2; i = 6 等式为： 109 + 153 = 262\n",
      "第 220 种解法： p = 1; o = 0; t = 9; a = 6; n = 3; b = 2; i = 7 等式为： 109 + 163 = 272\n",
      "第 221 种解法： p = 1; o = 0; t = 9; a = 7; n = 3; b = 2; i = 8 等式为： 109 + 173 = 282\n",
      "第 222 种解法： p = 1; o = 0; t = 9; a = 8; n = 3; b = 2; i = 9 等式为： 109 + 183 = 292\n",
      "第 223 种解法： p = 1; o = 2; t = 4; a = 7; n = 9; b = 3; i = 0 等式为： 124 + 179 = 303\n",
      "第 224 种解法： p = 1; o = 2; t = 4; a = 8; n = 9; b = 3; i = 1 等式为： 124 + 189 = 313\n",
      "第 225 种解法： p = 1; o = 2; t = 5; a = 7; n = 8; b = 3; i = 0 等式为： 125 + 178 = 303\n",
      "第 226 种解法： p = 1; o = 2; t = 5; a = 9; n = 8; b = 3; i = 2 等式为： 125 + 198 = 323\n",
      "第 227 种解法： p = 1; o = 2; t = 6; a = 8; n = 7; b = 3; i = 1 等式为： 126 + 187 = 313\n",
      "第 228 种解法： p = 1; o = 2; t = 6; a = 9; n = 7; b = 3; i = 2 等式为： 126 + 197 = 323\n",
      "第 229 种解法： p = 1; o = 2; t = 7; a = 8; n = 6; b = 3; i = 1 等式为： 127 + 186 = 313\n",
      "第 230 种解法： p = 1; o = 2; t = 7; a = 9; n = 6; b = 3; i = 2 等式为： 127 + 196 = 323\n",
      "第 231 种解法： p = 1; o = 2; t = 8; a = 7; n = 5; b = 3; i = 0 等式为： 128 + 175 = 303\n",
      "第 232 种解法： p = 1; o = 2; t = 8; a = 9; n = 5; b = 3; i = 2 等式为： 128 + 195 = 323\n",
      "第 233 种解法： p = 1; o = 2; t = 9; a = 7; n = 4; b = 3; i = 0 等式为： 129 + 174 = 303\n",
      "第 234 种解法： p = 1; o = 2; t = 9; a = 8; n = 4; b = 3; i = 1 等式为： 129 + 184 = 313\n",
      "第 235 种解法： p = 1; o = 3; t = 4; a = 0; n = 8; b = 2; i = 4 等式为： 134 + 108 = 242\n",
      "第 236 种解法： p = 1; o = 3; t = 4; a = 5; n = 8; b = 2; i = 9 等式为： 134 + 158 = 292\n",
      "第 237 种解法： p = 1; o = 3; t = 5; a = 0; n = 7; b = 2; i = 4 等式为： 135 + 107 = 242\n",
      "第 238 种解法： p = 1; o = 3; t = 5; a = 4; n = 7; b = 2; i = 8 等式为： 135 + 147 = 282\n",
      "第 239 种解法： p = 1; o = 3; t = 7; a = 0; n = 5; b = 2; i = 4 等式为： 137 + 105 = 242\n",
      "第 240 种解法： p = 1; o = 3; t = 7; a = 4; n = 5; b = 2; i = 8 等式为： 137 + 145 = 282\n",
      "第 241 种解法： p = 1; o = 3; t = 8; a = 0; n = 4; b = 2; i = 4 等式为： 138 + 104 = 242\n",
      "第 242 种解法： p = 1; o = 3; t = 8; a = 5; n = 4; b = 2; i = 9 等式为： 138 + 154 = 292\n",
      "第 243 种解法： p = 1; o = 4; t = 3; a = 0; n = 9; b = 2; i = 5 等式为： 143 + 109 = 252\n",
      "第 244 种解法： p = 1; o = 4; t = 5; a = 0; n = 7; b = 2; i = 5 等式为： 145 + 107 = 252\n",
      "第 245 种解法： p = 1; o = 4; t = 5; a = 3; n = 7; b = 2; i = 8 等式为： 145 + 137 = 282\n",
      "第 246 种解法： p = 1; o = 4; t = 5; a = 6; n = 8; b = 3; i = 1 等式为： 145 + 168 = 313\n",
      "第 247 种解法： p = 1; o = 4; t = 5; a = 7; n = 8; b = 3; i = 2 等式为： 145 + 178 = 323\n",
      "第 248 种解法： p = 1; o = 4; t = 5; a = 9; n = 8; b = 3; i = 4 等式为： 145 + 198 = 343\n",
      "第 249 种解法： p = 1; o = 4; t = 6; a = 5; n = 7; b = 3; i = 0 等式为： 146 + 157 = 303\n",
      "第 250 种解法： p = 1; o = 4; t = 6; a = 8; n = 7; b = 3; i = 3 等式为： 146 + 187 = 333\n",
      "第 251 种解法： p = 1; o = 4; t = 6; a = 9; n = 7; b = 3; i = 4 等式为： 146 + 197 = 343\n",
      "第 252 种解法： p = 1; o = 4; t = 7; a = 0; n = 5; b = 2; i = 5 等式为： 147 + 105 = 252\n",
      "第 253 种解法： p = 1; o = 4; t = 7; a = 3; n = 5; b = 2; i = 8 等式为： 147 + 135 = 282\n",
      "第 254 种解法： p = 1; o = 4; t = 7; a = 5; n = 6; b = 3; i = 0 等式为： 147 + 156 = 303\n",
      "第 255 种解法： p = 1; o = 4; t = 7; a = 8; n = 6; b = 3; i = 3 等式为： 147 + 186 = 333\n",
      "第 256 种解法： p = 1; o = 4; t = 7; a = 9; n = 6; b = 3; i = 4 等式为： 147 + 196 = 343\n",
      "第 257 种解法： p = 1; o = 4; t = 8; a = 6; n = 5; b = 3; i = 1 等式为： 148 + 165 = 313\n",
      "第 258 种解法： p = 1; o = 4; t = 8; a = 7; n = 5; b = 3; i = 2 等式为： 148 + 175 = 323\n",
      "第 259 种解法： p = 1; o = 4; t = 8; a = 9; n = 5; b = 3; i = 4 等式为： 148 + 195 = 343\n",
      "第 260 种解法： p = 1; o = 4; t = 9; a = 0; n = 3; b = 2; i = 5 等式为： 149 + 103 = 252\n",
      "第 261 种解法： p = 1; o = 5; t = 3; a = 0; n = 9; b = 2; i = 6 等式为： 153 + 109 = 262\n",
      "第 262 种解法： p = 1; o = 5; t = 4; a = 0; n = 8; b = 2; i = 6 等式为： 154 + 108 = 262\n",
      "第 263 种解法： p = 1; o = 5; t = 4; a = 3; n = 8; b = 2; i = 9 等式为： 154 + 138 = 292\n",
      "第 264 种解法： p = 1; o = 5; t = 4; a = 6; n = 9; b = 3; i = 2 等式为： 154 + 169 = 323\n",
      "第 265 种解法： p = 1; o = 5; t = 4; a = 7; n = 9; b = 3; i = 3 等式为： 154 + 179 = 333\n",
      "第 266 种解法： p = 1; o = 5; t = 4; a = 8; n = 9; b = 3; i = 4 等式为： 154 + 189 = 343\n",
      "第 267 种解法： p = 1; o = 5; t = 6; a = 4; n = 7; b = 3; i = 0 等式为： 156 + 147 = 303\n",
      "第 268 种解法： p = 1; o = 5; t = 6; a = 8; n = 7; b = 3; i = 4 等式为： 156 + 187 = 343\n",
      "第 269 种解法： p = 1; o = 5; t = 6; a = 9; n = 7; b = 3; i = 5 等式为： 156 + 197 = 353\n",
      "第 270 种解法： p = 1; o = 5; t = 7; a = 4; n = 6; b = 3; i = 0 等式为： 157 + 146 = 303\n",
      "第 271 种解法： p = 1; o = 5; t = 7; a = 8; n = 6; b = 3; i = 4 等式为： 157 + 186 = 343\n",
      "第 272 种解法： p = 1; o = 5; t = 7; a = 9; n = 6; b = 3; i = 5 等式为： 157 + 196 = 353\n",
      "第 273 种解法： p = 1; o = 5; t = 8; a = 0; n = 4; b = 2; i = 6 等式为： 158 + 104 = 262\n",
      "第 274 种解法： p = 1; o = 5; t = 8; a = 3; n = 4; b = 2; i = 9 等式为： 158 + 134 = 292\n",
      "第 275 种解法： p = 1; o = 5; t = 9; a = 0; n = 3; b = 2; i = 6 等式为： 159 + 103 = 262\n",
      "第 276 种解法： p = 1; o = 5; t = 9; a = 6; n = 4; b = 3; i = 2 等式为： 159 + 164 = 323\n",
      "第 277 种解法： p = 1; o = 5; t = 9; a = 7; n = 4; b = 3; i = 3 等式为： 159 + 174 = 333\n",
      "第 278 种解法： p = 1; o = 5; t = 9; a = 8; n = 4; b = 3; i = 4 等式为： 159 + 184 = 343\n",
      "第 279 种解法： p = 1; o = 6; t = 3; a = 0; n = 9; b = 2; i = 7 等式为： 163 + 109 = 272\n",
      "第 280 种解法： p = 1; o = 6; t = 4; a = 0; n = 8; b = 2; i = 7 等式为： 164 + 108 = 272\n",
      "第 281 种解法： p = 1; o = 6; t = 4; a = 5; n = 9; b = 3; i = 2 等式为： 164 + 159 = 323\n",
      "第 282 种解法： p = 1; o = 6; t = 4; a = 7; n = 9; b = 3; i = 4 等式为： 164 + 179 = 343\n",
      "第 283 种解法： p = 1; o = 6; t = 4; a = 8; n = 9; b = 3; i = 5 等式为： 164 + 189 = 353\n",
      "第 284 种解法： p = 1; o = 6; t = 5; a = 0; n = 7; b = 2; i = 7 等式为： 165 + 107 = 272\n",
      "第 285 种解法： p = 1; o = 6; t = 5; a = 4; n = 8; b = 3; i = 1 等式为： 165 + 148 = 313\n",
      "第 286 种解法： p = 1; o = 6; t = 5; a = 7; n = 8; b = 3; i = 4 等式为： 165 + 178 = 343\n",
      "第 287 种解法： p = 1; o = 6; t = 5; a = 9; n = 8; b = 3; i = 6 等式为： 165 + 198 = 363\n",
      "第 288 种解法： p = 1; o = 6; t = 7; a = 0; n = 5; b = 2; i = 7 等式为： 167 + 105 = 272\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "第 289 种解法： p = 1; o = 6; t = 8; a = 0; n = 4; b = 2; i = 7 等式为： 168 + 104 = 272\n",
      "第 290 种解法： p = 1; o = 6; t = 8; a = 4; n = 5; b = 3; i = 1 等式为： 168 + 145 = 313\n",
      "第 291 种解法： p = 1; o = 6; t = 8; a = 7; n = 5; b = 3; i = 4 等式为： 168 + 175 = 343\n",
      "第 292 种解法： p = 1; o = 6; t = 8; a = 9; n = 5; b = 3; i = 6 等式为： 168 + 195 = 363\n",
      "第 293 种解法： p = 1; o = 6; t = 9; a = 0; n = 3; b = 2; i = 7 等式为： 169 + 103 = 272\n",
      "第 294 种解法： p = 1; o = 6; t = 9; a = 5; n = 4; b = 3; i = 2 等式为： 169 + 154 = 323\n",
      "第 295 种解法： p = 1; o = 6; t = 9; a = 7; n = 4; b = 3; i = 4 等式为： 169 + 174 = 343\n",
      "第 296 种解法： p = 1; o = 6; t = 9; a = 8; n = 4; b = 3; i = 5 等式为： 169 + 184 = 353\n",
      "第 297 种解法： p = 1; o = 7; t = 3; a = 0; n = 9; b = 2; i = 8 等式为： 173 + 109 = 282\n",
      "第 298 种解法： p = 1; o = 7; t = 4; a = 0; n = 8; b = 2; i = 8 等式为： 174 + 108 = 282\n",
      "第 299 种解法： p = 1; o = 7; t = 4; a = 2; n = 9; b = 3; i = 0 等式为： 174 + 129 = 303\n",
      "第 300 种解法： p = 1; o = 7; t = 4; a = 5; n = 9; b = 3; i = 3 等式为： 174 + 159 = 333\n",
      "第 301 种解法： p = 1; o = 7; t = 4; a = 6; n = 9; b = 3; i = 4 等式为： 174 + 169 = 343\n",
      "第 302 种解法： p = 1; o = 7; t = 4; a = 8; n = 9; b = 3; i = 6 等式为： 174 + 189 = 363\n",
      "第 303 种解法： p = 1; o = 7; t = 5; a = 2; n = 8; b = 3; i = 0 等式为： 175 + 128 = 303\n",
      "第 304 种解法： p = 1; o = 7; t = 5; a = 4; n = 8; b = 3; i = 2 等式为： 175 + 148 = 323\n",
      "第 305 种解法： p = 1; o = 7; t = 5; a = 6; n = 8; b = 3; i = 4 等式为： 175 + 168 = 343\n",
      "第 306 种解法： p = 1; o = 7; t = 5; a = 9; n = 8; b = 3; i = 7 等式为： 175 + 198 = 373\n",
      "第 307 种解法： p = 1; o = 7; t = 8; a = 0; n = 4; b = 2; i = 8 等式为： 178 + 104 = 282\n",
      "第 308 种解法： p = 1; o = 7; t = 8; a = 2; n = 5; b = 3; i = 0 等式为： 178 + 125 = 303\n",
      "第 309 种解法： p = 1; o = 7; t = 8; a = 4; n = 5; b = 3; i = 2 等式为： 178 + 145 = 323\n",
      "第 310 种解法： p = 1; o = 7; t = 8; a = 6; n = 5; b = 3; i = 4 等式为： 178 + 165 = 343\n",
      "第 311 种解法： p = 1; o = 7; t = 8; a = 9; n = 5; b = 3; i = 7 等式为： 178 + 195 = 373\n",
      "第 312 种解法： p = 1; o = 7; t = 9; a = 0; n = 3; b = 2; i = 8 等式为： 179 + 103 = 282\n",
      "第 313 种解法： p = 1; o = 7; t = 9; a = 2; n = 4; b = 3; i = 0 等式为： 179 + 124 = 303\n",
      "第 314 种解法： p = 1; o = 7; t = 9; a = 5; n = 4; b = 3; i = 3 等式为： 179 + 154 = 333\n",
      "第 315 种解法： p = 1; o = 7; t = 9; a = 6; n = 4; b = 3; i = 4 等式为： 179 + 164 = 343\n",
      "第 316 种解法： p = 1; o = 7; t = 9; a = 8; n = 4; b = 3; i = 6 等式为： 179 + 184 = 363\n",
      "第 317 种解法： p = 1; o = 8; t = 3; a = 0; n = 9; b = 2; i = 9 等式为： 183 + 109 = 292\n",
      "第 318 种解法： p = 1; o = 8; t = 4; a = 2; n = 9; b = 3; i = 1 等式为： 184 + 129 = 313\n",
      "第 319 种解法： p = 1; o = 8; t = 4; a = 5; n = 9; b = 3; i = 4 等式为： 184 + 159 = 343\n",
      "第 320 种解法： p = 1; o = 8; t = 4; a = 6; n = 9; b = 3; i = 5 等式为： 184 + 169 = 353\n",
      "第 321 种解法： p = 1; o = 8; t = 4; a = 7; n = 9; b = 3; i = 6 等式为： 184 + 179 = 363\n",
      "第 322 种解法： p = 1; o = 8; t = 5; a = 0; n = 7; b = 2; i = 9 等式为： 185 + 107 = 292\n",
      "第 323 种解法： p = 1; o = 8; t = 6; a = 2; n = 7; b = 3; i = 1 等式为： 186 + 127 = 313\n",
      "第 324 种解法： p = 1; o = 8; t = 6; a = 4; n = 7; b = 3; i = 3 等式为： 186 + 147 = 333\n",
      "第 325 种解法： p = 1; o = 8; t = 6; a = 5; n = 7; b = 3; i = 4 等式为： 186 + 157 = 343\n",
      "第 326 种解法： p = 1; o = 8; t = 6; a = 9; n = 7; b = 3; i = 8 等式为： 186 + 197 = 383\n",
      "第 327 种解法： p = 1; o = 8; t = 7; a = 0; n = 5; b = 2; i = 9 等式为： 187 + 105 = 292\n",
      "第 328 种解法： p = 1; o = 8; t = 7; a = 2; n = 6; b = 3; i = 1 等式为： 187 + 126 = 313\n",
      "第 329 种解法： p = 1; o = 8; t = 7; a = 4; n = 6; b = 3; i = 3 等式为： 187 + 146 = 333\n",
      "第 330 种解法： p = 1; o = 8; t = 7; a = 5; n = 6; b = 3; i = 4 等式为： 187 + 156 = 343\n",
      "第 331 种解法： p = 1; o = 8; t = 7; a = 9; n = 6; b = 3; i = 8 等式为： 187 + 196 = 383\n",
      "第 332 种解法： p = 1; o = 8; t = 9; a = 0; n = 3; b = 2; i = 9 等式为： 189 + 103 = 292\n",
      "第 333 种解法： p = 1; o = 8; t = 9; a = 2; n = 4; b = 3; i = 1 等式为： 189 + 124 = 313\n",
      "第 334 种解法： p = 1; o = 8; t = 9; a = 5; n = 4; b = 3; i = 4 等式为： 189 + 154 = 343\n",
      "第 335 种解法： p = 1; o = 8; t = 9; a = 6; n = 4; b = 3; i = 5 等式为： 189 + 164 = 353\n",
      "第 336 种解法： p = 1; o = 8; t = 9; a = 7; n = 4; b = 3; i = 6 等式为： 189 + 174 = 363\n",
      "第 337 种解法： p = 1; o = 9; t = 5; a = 0; n = 8; b = 3; i = 0 等式为： 195 + 108 = 303\n",
      "第 338 种解法： p = 1; o = 9; t = 5; a = 2; n = 8; b = 3; i = 2 等式为： 195 + 128 = 323\n",
      "第 339 种解法： p = 1; o = 9; t = 5; a = 4; n = 8; b = 3; i = 4 等式为： 195 + 148 = 343\n",
      "第 340 种解法： p = 1; o = 9; t = 5; a = 6; n = 8; b = 3; i = 6 等式为： 195 + 168 = 363\n",
      "第 341 种解法： p = 1; o = 9; t = 5; a = 7; n = 8; b = 3; i = 7 等式为： 195 + 178 = 373\n",
      "第 342 种解法： p = 1; o = 9; t = 6; a = 0; n = 7; b = 3; i = 0 等式为： 196 + 107 = 303\n",
      "第 343 种解法： p = 1; o = 9; t = 6; a = 2; n = 7; b = 3; i = 2 等式为： 196 + 127 = 323\n",
      "第 344 种解法： p = 1; o = 9; t = 6; a = 4; n = 7; b = 3; i = 4 等式为： 196 + 147 = 343\n",
      "第 345 种解法： p = 1; o = 9; t = 6; a = 5; n = 7; b = 3; i = 5 等式为： 196 + 157 = 353\n",
      "第 346 种解法： p = 1; o = 9; t = 6; a = 8; n = 7; b = 3; i = 8 等式为： 196 + 187 = 383\n",
      "第 347 种解法： p = 1; o = 9; t = 7; a = 0; n = 6; b = 3; i = 0 等式为： 197 + 106 = 303\n",
      "第 348 种解法： p = 1; o = 9; t = 7; a = 2; n = 6; b = 3; i = 2 等式为： 197 + 126 = 323\n",
      "第 349 种解法： p = 1; o = 9; t = 7; a = 4; n = 6; b = 3; i = 4 等式为： 197 + 146 = 343\n",
      "第 350 种解法： p = 1; o = 9; t = 7; a = 5; n = 6; b = 3; i = 5 等式为： 197 + 156 = 353\n",
      "第 351 种解法： p = 1; o = 9; t = 7; a = 8; n = 6; b = 3; i = 8 等式为： 197 + 186 = 383\n",
      "第 352 种解法： p = 1; o = 9; t = 8; a = 0; n = 5; b = 3; i = 0 等式为： 198 + 105 = 303\n",
      "第 353 种解法： p = 1; o = 9; t = 8; a = 2; n = 5; b = 3; i = 2 等式为： 198 + 125 = 323\n",
      "第 354 种解法： p = 1; o = 9; t = 8; a = 4; n = 5; b = 3; i = 4 等式为： 198 + 145 = 343\n",
      "第 355 种解法： p = 1; o = 9; t = 8; a = 6; n = 5; b = 3; i = 6 等式为： 198 + 165 = 363\n",
      "第 356 种解法： p = 1; o = 9; t = 8; a = 7; n = 5; b = 3; i = 7 等式为： 198 + 175 = 373\n",
      "第 357 种解法： p = 2; o = 0; t = 1; a = 5; n = 3; b = 4; i = 5 等式为： 201 + 253 = 454\n",
      "第 358 种解法： p = 2; o = 0; t = 1; a = 6; n = 3; b = 4; i = 6 等式为： 201 + 263 = 464\n",
      "第 359 种解法： p = 2; o = 0; t = 1; a = 7; n = 3; b = 4; i = 7 等式为： 201 + 273 = 474\n",
      "第 360 种解法： p = 2; o = 0; t = 1; a = 8; n = 3; b = 4; i = 8 等式为： 201 + 283 = 484\n",
      "第 361 种解法： p = 2; o = 0; t = 1; a = 9; n = 3; b = 4; i = 9 等式为： 201 + 293 = 494\n",
      "第 362 种解法： p = 2; o = 0; t = 3; a = 5; n = 1; b = 4; i = 5 等式为： 203 + 251 = 454\n",
      "第 363 种解法： p = 2; o = 0; t = 3; a = 6; n = 1; b = 4; i = 6 等式为： 203 + 261 = 464\n",
      "第 364 种解法： p = 2; o = 0; t = 3; a = 7; n = 1; b = 4; i = 7 等式为： 203 + 271 = 474\n",
      "第 365 种解法： p = 2; o = 0; t = 3; a = 8; n = 1; b = 4; i = 8 等式为： 203 + 281 = 484\n",
      "第 366 种解法： p = 2; o = 0; t = 3; a = 9; n = 1; b = 4; i = 9 等式为： 203 + 291 = 494\n",
      "第 367 种解法： p = 2; o = 0; t = 5; a = 1; n = 9; b = 4; i = 2 等式为： 205 + 219 = 424\n",
      "第 368 种解法： p = 2; o = 0; t = 5; a = 3; n = 9; b = 4; i = 4 等式为： 205 + 239 = 444\n",
      "第 369 种解法： p = 2; o = 0; t = 5; a = 6; n = 9; b = 4; i = 7 等式为： 205 + 269 = 474\n",
      "第 370 种解法： p = 2; o = 0; t = 5; a = 7; n = 9; b = 4; i = 8 等式为： 205 + 279 = 484\n",
      "第 371 种解法： p = 2; o = 0; t = 5; a = 8; n = 9; b = 4; i = 9 等式为： 205 + 289 = 494\n",
      "第 372 种解法： p = 2; o = 0; t = 6; a = 1; n = 8; b = 4; i = 2 等式为： 206 + 218 = 424\n",
      "第 373 种解法： p = 2; o = 0; t = 6; a = 3; n = 8; b = 4; i = 4 等式为： 206 + 238 = 444\n",
      "第 374 种解法： p = 2; o = 0; t = 6; a = 5; n = 8; b = 4; i = 6 等式为： 206 + 258 = 464\n",
      "第 375 种解法： p = 2; o = 0; t = 6; a = 7; n = 8; b = 4; i = 8 等式为： 206 + 278 = 484\n",
      "第 376 种解法： p = 2; o = 0; t = 7; a = 9; n = 8; b = 5; i = 0 等式为： 207 + 298 = 505\n",
      "第 377 种解法： p = 2; o = 0; t = 8; a = 1; n = 6; b = 4; i = 2 等式为： 208 + 216 = 424\n",
      "第 378 种解法： p = 2; o = 0; t = 8; a = 3; n = 6; b = 4; i = 4 等式为： 208 + 236 = 444\n",
      "第 379 种解法： p = 2; o = 0; t = 8; a = 5; n = 6; b = 4; i = 6 等式为： 208 + 256 = 464\n",
      "第 380 种解法： p = 2; o = 0; t = 8; a = 7; n = 6; b = 4; i = 8 等式为： 208 + 276 = 484\n",
      "第 381 种解法： p = 2; o = 0; t = 8; a = 9; n = 7; b = 5; i = 0 等式为： 208 + 297 = 505\n",
      "第 382 种解法： p = 2; o = 0; t = 9; a = 1; n = 5; b = 4; i = 2 等式为： 209 + 215 = 424\n",
      "第 383 种解法： p = 2; o = 0; t = 9; a = 3; n = 5; b = 4; i = 4 等式为： 209 + 235 = 444\n",
      "第 384 种解法： p = 2; o = 0; t = 9; a = 6; n = 5; b = 4; i = 7 等式为： 209 + 265 = 474\n",
      "第 385 种解法： p = 2; o = 0; t = 9; a = 7; n = 5; b = 4; i = 8 等式为： 209 + 275 = 484\n",
      "第 386 种解法： p = 2; o = 0; t = 9; a = 8; n = 5; b = 4; i = 9 等式为： 209 + 285 = 494\n",
      "第 387 种解法： p = 2; o = 1; t = 5; a = 0; n = 9; b = 4; i = 2 等式为： 215 + 209 = 424\n",
      "第 388 种解法： p = 2; o = 1; t = 5; a = 3; n = 9; b = 4; i = 5 等式为： 215 + 239 = 454\n",
      "第 389 种解法： p = 2; o = 1; t = 5; a = 6; n = 9; b = 4; i = 8 等式为： 215 + 269 = 484\n",
      "第 390 种解法： p = 2; o = 1; t = 5; a = 7; n = 9; b = 4; i = 9 等式为： 215 + 279 = 494\n",
      "第 391 种解法： p = 2; o = 1; t = 6; a = 0; n = 8; b = 4; i = 2 等式为： 216 + 208 = 424\n",
      "第 392 种解法： p = 2; o = 1; t = 6; a = 3; n = 8; b = 4; i = 5 等式为： 216 + 238 = 454\n",
      "第 393 种解法： p = 2; o = 1; t = 6; a = 5; n = 8; b = 4; i = 7 等式为： 216 + 258 = 474\n",
      "第 394 种解法： p = 2; o = 1; t = 6; a = 7; n = 8; b = 4; i = 9 等式为： 216 + 278 = 494\n",
      "第 395 种解法： p = 2; o = 1; t = 6; a = 8; n = 9; b = 5; i = 0 等式为： 216 + 289 = 505\n",
      "第 396 种解法： p = 2; o = 1; t = 7; a = 9; n = 8; b = 5; i = 1 等式为： 217 + 298 = 515\n",
      "第 397 种解法： p = 2; o = 1; t = 8; a = 0; n = 6; b = 4; i = 2 等式为： 218 + 206 = 424\n",
      "第 398 种解法： p = 2; o = 1; t = 8; a = 3; n = 6; b = 4; i = 5 等式为： 218 + 236 = 454\n",
      "第 399 种解法： p = 2; o = 1; t = 8; a = 5; n = 6; b = 4; i = 7 等式为： 218 + 256 = 474\n",
      "第 400 种解法： p = 2; o = 1; t = 8; a = 7; n = 6; b = 4; i = 9 等式为： 218 + 276 = 494\n",
      "第 401 种解法： p = 2; o = 1; t = 8; a = 9; n = 7; b = 5; i = 1 等式为： 218 + 297 = 515\n",
      "第 402 种解法： p = 2; o = 1; t = 9; a = 0; n = 5; b = 4; i = 2 等式为： 219 + 205 = 424\n",
      "第 403 种解法： p = 2; o = 1; t = 9; a = 3; n = 5; b = 4; i = 5 等式为： 219 + 235 = 454\n",
      "第 404 种解法： p = 2; o = 1; t = 9; a = 6; n = 5; b = 4; i = 8 等式为： 219 + 265 = 484\n",
      "第 405 种解法： p = 2; o = 1; t = 9; a = 7; n = 5; b = 4; i = 9 等式为： 219 + 275 = 494\n",
      "第 406 种解法： p = 2; o = 1; t = 9; a = 8; n = 6; b = 5; i = 0 等式为： 219 + 286 = 505\n",
      "第 407 种解法： p = 2; o = 3; t = 1; a = 7; n = 4; b = 5; i = 0 等式为： 231 + 274 = 505\n",
      "第 408 种解法： p = 2; o = 3; t = 1; a = 8; n = 4; b = 5; i = 1 等式为： 231 + 284 = 515\n",
      "第 409 种解法： p = 2; o = 3; t = 1; a = 9; n = 4; b = 5; i = 2 等式为： 231 + 294 = 525\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "第 410 种解法： p = 2; o = 3; t = 4; a = 7; n = 1; b = 5; i = 0 等式为： 234 + 271 = 505\n",
      "第 411 种解法： p = 2; o = 3; t = 4; a = 8; n = 1; b = 5; i = 1 等式为： 234 + 281 = 515\n",
      "第 412 种解法： p = 2; o = 3; t = 4; a = 9; n = 1; b = 5; i = 2 等式为： 234 + 291 = 525\n",
      "第 413 种解法： p = 2; o = 3; t = 5; a = 0; n = 9; b = 4; i = 4 等式为： 235 + 209 = 444\n",
      "第 414 种解法： p = 2; o = 3; t = 5; a = 1; n = 9; b = 4; i = 5 等式为： 235 + 219 = 454\n",
      "第 415 种解法： p = 2; o = 3; t = 6; a = 0; n = 8; b = 4; i = 4 等式为： 236 + 208 = 444\n",
      "第 416 种解法： p = 2; o = 3; t = 6; a = 1; n = 8; b = 4; i = 5 等式为： 236 + 218 = 454\n",
      "第 417 种解法： p = 2; o = 3; t = 6; a = 5; n = 8; b = 4; i = 9 等式为： 236 + 258 = 494\n",
      "第 418 种解法： p = 2; o = 3; t = 6; a = 7; n = 9; b = 5; i = 1 等式为： 236 + 279 = 515\n",
      "第 419 种解法： p = 2; o = 3; t = 6; a = 8; n = 9; b = 5; i = 2 等式为： 236 + 289 = 525\n",
      "第 420 种解法： p = 2; o = 3; t = 7; a = 6; n = 8; b = 5; i = 0 等式为： 237 + 268 = 505\n",
      "第 421 种解法： p = 2; o = 3; t = 7; a = 9; n = 8; b = 5; i = 3 等式为： 237 + 298 = 535\n",
      "第 422 种解法： p = 2; o = 3; t = 8; a = 0; n = 6; b = 4; i = 4 等式为： 238 + 206 = 444\n",
      "第 423 种解法： p = 2; o = 3; t = 8; a = 1; n = 6; b = 4; i = 5 等式为： 238 + 216 = 454\n",
      "第 424 种解法： p = 2; o = 3; t = 8; a = 5; n = 6; b = 4; i = 9 等式为： 238 + 256 = 494\n",
      "第 425 种解法： p = 2; o = 3; t = 8; a = 6; n = 7; b = 5; i = 0 等式为： 238 + 267 = 505\n",
      "第 426 种解法： p = 2; o = 3; t = 8; a = 9; n = 7; b = 5; i = 3 等式为： 238 + 297 = 535\n",
      "第 427 种解法： p = 2; o = 3; t = 9; a = 0; n = 5; b = 4; i = 4 等式为： 239 + 205 = 444\n",
      "第 428 种解法： p = 2; o = 3; t = 9; a = 1; n = 5; b = 4; i = 5 等式为： 239 + 215 = 454\n",
      "第 429 种解法： p = 2; o = 3; t = 9; a = 7; n = 6; b = 5; i = 1 等式为： 239 + 276 = 515\n",
      "第 430 种解法： p = 2; o = 3; t = 9; a = 8; n = 6; b = 5; i = 2 等式为： 239 + 286 = 525\n",
      "第 431 种解法： p = 2; o = 4; t = 6; a = 7; n = 9; b = 5; i = 2 等式为： 246 + 279 = 525\n",
      "第 432 种解法： p = 2; o = 4; t = 6; a = 8; n = 9; b = 5; i = 3 等式为： 246 + 289 = 535\n",
      "第 433 种解法： p = 2; o = 4; t = 7; a = 6; n = 8; b = 5; i = 1 等式为： 247 + 268 = 515\n",
      "第 434 种解法： p = 2; o = 4; t = 7; a = 9; n = 8; b = 5; i = 4 等式为： 247 + 298 = 545\n",
      "第 435 种解法： p = 2; o = 4; t = 8; a = 6; n = 7; b = 5; i = 1 等式为： 248 + 267 = 515\n",
      "第 436 种解法： p = 2; o = 4; t = 8; a = 9; n = 7; b = 5; i = 4 等式为： 248 + 297 = 545\n",
      "第 437 种解法： p = 2; o = 4; t = 9; a = 7; n = 6; b = 5; i = 2 等式为： 249 + 276 = 525\n",
      "第 438 种解法： p = 2; o = 4; t = 9; a = 8; n = 6; b = 5; i = 3 等式为： 249 + 286 = 535\n",
      "第 439 种解法： p = 2; o = 5; t = 1; a = 0; n = 3; b = 4; i = 5 等式为： 251 + 203 = 454\n",
      "第 440 种解法： p = 2; o = 5; t = 3; a = 0; n = 1; b = 4; i = 5 等式为： 253 + 201 = 454\n",
      "第 441 种解法： p = 2; o = 5; t = 6; a = 0; n = 8; b = 4; i = 6 等式为： 256 + 208 = 464\n",
      "第 442 种解法： p = 2; o = 5; t = 6; a = 1; n = 8; b = 4; i = 7 等式为： 256 + 218 = 474\n",
      "第 443 种解法： p = 2; o = 5; t = 6; a = 3; n = 8; b = 4; i = 9 等式为： 256 + 238 = 494\n",
      "第 444 种解法： p = 2; o = 5; t = 8; a = 0; n = 6; b = 4; i = 6 等式为： 258 + 206 = 464\n",
      "第 445 种解法： p = 2; o = 5; t = 8; a = 1; n = 6; b = 4; i = 7 等式为： 258 + 216 = 474\n",
      "第 446 种解法： p = 2; o = 5; t = 8; a = 3; n = 6; b = 4; i = 9 等式为： 258 + 236 = 494\n",
      "第 447 种解法： p = 2; o = 6; t = 1; a = 0; n = 3; b = 4; i = 6 等式为： 261 + 203 = 464\n",
      "第 448 种解法： p = 2; o = 6; t = 1; a = 7; n = 4; b = 5; i = 3 等式为： 261 + 274 = 535\n",
      "第 449 种解法： p = 2; o = 6; t = 1; a = 8; n = 4; b = 5; i = 4 等式为： 261 + 284 = 545\n",
      "第 450 种解法： p = 2; o = 6; t = 1; a = 9; n = 4; b = 5; i = 5 等式为： 261 + 294 = 555\n",
      "第 451 种解法： p = 2; o = 6; t = 3; a = 0; n = 1; b = 4; i = 6 等式为： 263 + 201 = 464\n",
      "第 452 种解法： p = 2; o = 6; t = 4; a = 7; n = 1; b = 5; i = 3 等式为： 264 + 271 = 535\n",
      "第 453 种解法： p = 2; o = 6; t = 4; a = 8; n = 1; b = 5; i = 4 等式为： 264 + 281 = 545\n",
      "第 454 种解法： p = 2; o = 6; t = 4; a = 9; n = 1; b = 5; i = 5 等式为： 264 + 291 = 555\n",
      "第 455 种解法： p = 2; o = 6; t = 5; a = 0; n = 9; b = 4; i = 7 等式为： 265 + 209 = 474\n",
      "第 456 种解法： p = 2; o = 6; t = 5; a = 1; n = 9; b = 4; i = 8 等式为： 265 + 219 = 484\n",
      "第 457 种解法： p = 2; o = 6; t = 7; a = 3; n = 8; b = 5; i = 0 等式为： 267 + 238 = 505\n",
      "第 458 种解法： p = 2; o = 6; t = 7; a = 4; n = 8; b = 5; i = 1 等式为： 267 + 248 = 515\n",
      "第 459 种解法： p = 2; o = 6; t = 7; a = 9; n = 8; b = 5; i = 6 等式为： 267 + 298 = 565\n",
      "第 460 种解法： p = 2; o = 6; t = 8; a = 3; n = 7; b = 5; i = 0 等式为： 268 + 237 = 505\n",
      "第 461 种解法： p = 2; o = 6; t = 8; a = 4; n = 7; b = 5; i = 1 等式为： 268 + 247 = 515\n",
      "第 462 种解法： p = 2; o = 6; t = 8; a = 9; n = 7; b = 5; i = 6 等式为： 268 + 297 = 565\n",
      "第 463 种解法： p = 2; o = 6; t = 9; a = 0; n = 5; b = 4; i = 7 等式为： 269 + 205 = 474\n",
      "第 464 种解法： p = 2; o = 6; t = 9; a = 1; n = 5; b = 4; i = 8 等式为： 269 + 215 = 484\n",
      "第 465 种解法： p = 2; o = 7; t = 1; a = 0; n = 3; b = 4; i = 7 等式为： 271 + 203 = 474\n",
      "第 466 种解法： p = 2; o = 7; t = 1; a = 3; n = 4; b = 5; i = 0 等式为： 271 + 234 = 505\n",
      "第 467 种解法： p = 2; o = 7; t = 1; a = 6; n = 4; b = 5; i = 3 等式为： 271 + 264 = 535\n",
      "第 468 种解法： p = 2; o = 7; t = 1; a = 8; n = 4; b = 5; i = 5 等式为： 271 + 284 = 555\n",
      "第 469 种解法： p = 2; o = 7; t = 1; a = 9; n = 4; b = 5; i = 6 等式为： 271 + 294 = 565\n",
      "第 470 种解法： p = 2; o = 7; t = 3; a = 0; n = 1; b = 4; i = 7 等式为： 273 + 201 = 474\n",
      "第 471 种解法： p = 2; o = 7; t = 4; a = 3; n = 1; b = 5; i = 0 等式为： 274 + 231 = 505\n",
      "第 472 种解法： p = 2; o = 7; t = 4; a = 6; n = 1; b = 5; i = 3 等式为： 274 + 261 = 535\n",
      "第 473 种解法： p = 2; o = 7; t = 4; a = 8; n = 1; b = 5; i = 5 等式为： 274 + 281 = 555\n",
      "第 474 种解法： p = 2; o = 7; t = 4; a = 9; n = 1; b = 5; i = 6 等式为： 274 + 291 = 565\n",
      "第 475 种解法： p = 2; o = 7; t = 5; a = 0; n = 9; b = 4; i = 8 等式为： 275 + 209 = 484\n",
      "第 476 种解法： p = 2; o = 7; t = 5; a = 1; n = 9; b = 4; i = 9 等式为： 275 + 219 = 494\n",
      "第 477 种解法： p = 2; o = 7; t = 6; a = 0; n = 8; b = 4; i = 8 等式为： 276 + 208 = 484\n",
      "第 478 种解法： p = 2; o = 7; t = 6; a = 1; n = 8; b = 4; i = 9 等式为： 276 + 218 = 494\n",
      "第 479 种解法： p = 2; o = 7; t = 6; a = 3; n = 9; b = 5; i = 1 等式为： 276 + 239 = 515\n",
      "第 480 种解法： p = 2; o = 7; t = 6; a = 4; n = 9; b = 5; i = 2 等式为： 276 + 249 = 525\n",
      "第 481 种解法： p = 2; o = 7; t = 6; a = 8; n = 9; b = 5; i = 6 等式为： 276 + 289 = 565\n",
      "第 482 种解法： p = 2; o = 7; t = 8; a = 0; n = 6; b = 4; i = 8 等式为： 278 + 206 = 484\n",
      "第 483 种解法： p = 2; o = 7; t = 8; a = 1; n = 6; b = 4; i = 9 等式为： 278 + 216 = 494\n",
      "第 484 种解法： p = 2; o = 7; t = 9; a = 0; n = 5; b = 4; i = 8 等式为： 279 + 205 = 484\n",
      "第 485 种解法： p = 2; o = 7; t = 9; a = 1; n = 5; b = 4; i = 9 等式为： 279 + 215 = 494\n",
      "第 486 种解法： p = 2; o = 7; t = 9; a = 3; n = 6; b = 5; i = 1 等式为： 279 + 236 = 515\n",
      "第 487 种解法： p = 2; o = 7; t = 9; a = 4; n = 6; b = 5; i = 2 等式为： 279 + 246 = 525\n",
      "第 488 种解法： p = 2; o = 7; t = 9; a = 8; n = 6; b = 5; i = 6 等式为： 279 + 286 = 565\n",
      "第 489 种解法： p = 2; o = 8; t = 1; a = 0; n = 3; b = 4; i = 8 等式为： 281 + 203 = 484\n",
      "第 490 种解法： p = 2; o = 8; t = 1; a = 3; n = 4; b = 5; i = 1 等式为： 281 + 234 = 515\n",
      "第 491 种解法： p = 2; o = 8; t = 1; a = 6; n = 4; b = 5; i = 4 等式为： 281 + 264 = 545\n",
      "第 492 种解法： p = 2; o = 8; t = 1; a = 7; n = 4; b = 5; i = 5 等式为： 281 + 274 = 555\n",
      "第 493 种解法： p = 2; o = 8; t = 1; a = 9; n = 4; b = 5; i = 7 等式为： 281 + 294 = 575\n",
      "第 494 种解法： p = 2; o = 8; t = 3; a = 0; n = 1; b = 4; i = 8 等式为： 283 + 201 = 484\n",
      "第 495 种解法： p = 2; o = 8; t = 4; a = 3; n = 1; b = 5; i = 1 等式为： 284 + 231 = 515\n",
      "第 496 种解法： p = 2; o = 8; t = 4; a = 6; n = 1; b = 5; i = 4 等式为： 284 + 261 = 545\n",
      "第 497 种解法： p = 2; o = 8; t = 4; a = 7; n = 1; b = 5; i = 5 等式为： 284 + 271 = 555\n",
      "第 498 种解法： p = 2; o = 8; t = 4; a = 9; n = 1; b = 5; i = 7 等式为： 284 + 291 = 575\n",
      "第 499 种解法： p = 2; o = 8; t = 5; a = 0; n = 9; b = 4; i = 9 等式为： 285 + 209 = 494\n",
      "第 500 种解法： p = 2; o = 8; t = 6; a = 1; n = 9; b = 5; i = 0 等式为： 286 + 219 = 505\n",
      "第 501 种解法： p = 2; o = 8; t = 6; a = 3; n = 9; b = 5; i = 2 等式为： 286 + 239 = 525\n",
      "第 502 种解法： p = 2; o = 8; t = 6; a = 4; n = 9; b = 5; i = 3 等式为： 286 + 249 = 535\n",
      "第 503 种解法： p = 2; o = 8; t = 6; a = 7; n = 9; b = 5; i = 6 等式为： 286 + 279 = 565\n",
      "第 504 种解法： p = 2; o = 8; t = 9; a = 0; n = 5; b = 4; i = 9 等式为： 289 + 205 = 494\n",
      "第 505 种解法： p = 2; o = 8; t = 9; a = 1; n = 6; b = 5; i = 0 等式为： 289 + 216 = 505\n",
      "第 506 种解法： p = 2; o = 8; t = 9; a = 3; n = 6; b = 5; i = 2 等式为： 289 + 236 = 525\n",
      "第 507 种解法： p = 2; o = 8; t = 9; a = 4; n = 6; b = 5; i = 3 等式为： 289 + 246 = 535\n",
      "第 508 种解法： p = 2; o = 8; t = 9; a = 7; n = 6; b = 5; i = 6 等式为： 289 + 276 = 565\n",
      "第 509 种解法： p = 2; o = 9; t = 1; a = 0; n = 3; b = 4; i = 9 等式为： 291 + 203 = 494\n",
      "第 510 种解法： p = 2; o = 9; t = 1; a = 3; n = 4; b = 5; i = 2 等式为： 291 + 234 = 525\n",
      "第 511 种解法： p = 2; o = 9; t = 1; a = 6; n = 4; b = 5; i = 5 等式为： 291 + 264 = 555\n",
      "第 512 种解法： p = 2; o = 9; t = 1; a = 7; n = 4; b = 5; i = 6 等式为： 291 + 274 = 565\n",
      "第 513 种解法： p = 2; o = 9; t = 1; a = 8; n = 4; b = 5; i = 7 等式为： 291 + 284 = 575\n",
      "第 514 种解法： p = 2; o = 9; t = 3; a = 0; n = 1; b = 4; i = 9 等式为： 293 + 201 = 494\n",
      "第 515 种解法： p = 2; o = 9; t = 4; a = 3; n = 1; b = 5; i = 2 等式为： 294 + 231 = 525\n",
      "第 516 种解法： p = 2; o = 9; t = 4; a = 6; n = 1; b = 5; i = 5 等式为： 294 + 261 = 555\n",
      "第 517 种解法： p = 2; o = 9; t = 4; a = 7; n = 1; b = 5; i = 6 等式为： 294 + 271 = 565\n",
      "第 518 种解法： p = 2; o = 9; t = 4; a = 8; n = 1; b = 5; i = 7 等式为： 294 + 281 = 575\n",
      "第 519 种解法： p = 2; o = 9; t = 7; a = 0; n = 8; b = 5; i = 0 等式为： 297 + 208 = 505\n",
      "第 520 种解法： p = 2; o = 9; t = 7; a = 1; n = 8; b = 5; i = 1 等式为： 297 + 218 = 515\n",
      "第 521 种解法： p = 2; o = 9; t = 7; a = 3; n = 8; b = 5; i = 3 等式为： 297 + 238 = 535\n",
      "第 522 种解法： p = 2; o = 9; t = 7; a = 4; n = 8; b = 5; i = 4 等式为： 297 + 248 = 545\n",
      "第 523 种解法： p = 2; o = 9; t = 7; a = 6; n = 8; b = 5; i = 6 等式为： 297 + 268 = 565\n",
      "第 524 种解法： p = 2; o = 9; t = 8; a = 0; n = 7; b = 5; i = 0 等式为： 298 + 207 = 505\n",
      "第 525 种解法： p = 2; o = 9; t = 8; a = 1; n = 7; b = 5; i = 1 等式为： 298 + 217 = 515\n",
      "第 526 种解法： p = 2; o = 9; t = 8; a = 3; n = 7; b = 5; i = 3 等式为： 298 + 237 = 535\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "第 527 种解法： p = 2; o = 9; t = 8; a = 4; n = 7; b = 5; i = 4 等式为： 298 + 247 = 545\n",
      "第 528 种解法： p = 2; o = 9; t = 8; a = 6; n = 7; b = 5; i = 6 等式为： 298 + 267 = 565\n",
      "第 529 种解法： p = 3; o = 0; t = 1; a = 2; n = 5; b = 6; i = 2 等式为： 301 + 325 = 626\n",
      "第 530 种解法： p = 3; o = 0; t = 1; a = 4; n = 5; b = 6; i = 4 等式为： 301 + 345 = 646\n",
      "第 531 种解法： p = 3; o = 0; t = 1; a = 7; n = 5; b = 6; i = 7 等式为： 301 + 375 = 676\n",
      "第 532 种解法： p = 3; o = 0; t = 1; a = 8; n = 5; b = 6; i = 8 等式为： 301 + 385 = 686\n",
      "第 533 种解法： p = 3; o = 0; t = 1; a = 9; n = 5; b = 6; i = 9 等式为： 301 + 395 = 696\n",
      "第 534 种解法： p = 3; o = 0; t = 2; a = 1; n = 4; b = 6; i = 1 等式为： 302 + 314 = 616\n",
      "第 535 种解法： p = 3; o = 0; t = 2; a = 5; n = 4; b = 6; i = 5 等式为： 302 + 354 = 656\n",
      "第 536 种解法： p = 3; o = 0; t = 2; a = 7; n = 4; b = 6; i = 7 等式为： 302 + 374 = 676\n",
      "第 537 种解法： p = 3; o = 0; t = 2; a = 8; n = 4; b = 6; i = 8 等式为： 302 + 384 = 686\n",
      "第 538 种解法： p = 3; o = 0; t = 2; a = 9; n = 4; b = 6; i = 9 等式为： 302 + 394 = 696\n",
      "第 539 种解法： p = 3; o = 0; t = 4; a = 1; n = 2; b = 6; i = 1 等式为： 304 + 312 = 616\n",
      "第 540 种解法： p = 3; o = 0; t = 4; a = 5; n = 2; b = 6; i = 5 等式为： 304 + 352 = 656\n",
      "第 541 种解法： p = 3; o = 0; t = 4; a = 7; n = 2; b = 6; i = 7 等式为： 304 + 372 = 676\n",
      "第 542 种解法： p = 3; o = 0; t = 4; a = 8; n = 2; b = 6; i = 8 等式为： 304 + 382 = 686\n",
      "第 543 种解法： p = 3; o = 0; t = 4; a = 9; n = 2; b = 6; i = 9 等式为： 304 + 392 = 696\n",
      "第 544 种解法： p = 3; o = 0; t = 5; a = 2; n = 1; b = 6; i = 2 等式为： 305 + 321 = 626\n",
      "第 545 种解法： p = 3; o = 0; t = 5; a = 4; n = 1; b = 6; i = 4 等式为： 305 + 341 = 646\n",
      "第 546 种解法： p = 3; o = 0; t = 5; a = 7; n = 1; b = 6; i = 7 等式为： 305 + 371 = 676\n",
      "第 547 种解法： p = 3; o = 0; t = 5; a = 8; n = 1; b = 6; i = 8 等式为： 305 + 381 = 686\n",
      "第 548 种解法： p = 3; o = 0; t = 5; a = 9; n = 1; b = 6; i = 9 等式为： 305 + 391 = 696\n",
      "第 549 种解法： p = 3; o = 0; t = 7; a = 1; n = 9; b = 6; i = 2 等式为： 307 + 319 = 626\n",
      "第 550 种解法： p = 3; o = 0; t = 7; a = 2; n = 9; b = 6; i = 3 等式为： 307 + 329 = 636\n",
      "第 551 种解法： p = 3; o = 0; t = 7; a = 4; n = 9; b = 6; i = 5 等式为： 307 + 349 = 656\n",
      "第 552 种解法： p = 3; o = 0; t = 7; a = 5; n = 9; b = 6; i = 6 等式为： 307 + 359 = 666\n",
      "第 553 种解法： p = 3; o = 0; t = 7; a = 8; n = 9; b = 6; i = 9 等式为： 307 + 389 = 696\n",
      "第 554 种解法： p = 3; o = 0; t = 9; a = 1; n = 7; b = 6; i = 2 等式为： 309 + 317 = 626\n",
      "第 555 种解法： p = 3; o = 0; t = 9; a = 2; n = 7; b = 6; i = 3 等式为： 309 + 327 = 636\n",
      "第 556 种解法： p = 3; o = 0; t = 9; a = 4; n = 7; b = 6; i = 5 等式为： 309 + 347 = 656\n",
      "第 557 种解法： p = 3; o = 0; t = 9; a = 5; n = 7; b = 6; i = 6 等式为： 309 + 357 = 666\n",
      "第 558 种解法： p = 3; o = 0; t = 9; a = 8; n = 7; b = 6; i = 9 等式为： 309 + 387 = 696\n",
      "第 559 种解法： p = 3; o = 1; t = 2; a = 0; n = 4; b = 6; i = 1 等式为： 312 + 304 = 616\n",
      "第 560 种解法： p = 3; o = 1; t = 2; a = 5; n = 4; b = 6; i = 6 等式为： 312 + 354 = 666\n",
      "第 561 种解法： p = 3; o = 1; t = 2; a = 7; n = 4; b = 6; i = 8 等式为： 312 + 374 = 686\n",
      "第 562 种解法： p = 3; o = 1; t = 2; a = 8; n = 4; b = 6; i = 9 等式为： 312 + 384 = 696\n",
      "第 563 种解法： p = 3; o = 1; t = 2; a = 9; n = 5; b = 7; i = 0 等式为： 312 + 395 = 707\n",
      "第 564 种解法： p = 3; o = 1; t = 4; a = 0; n = 2; b = 6; i = 1 等式为： 314 + 302 = 616\n",
      "第 565 种解法： p = 3; o = 1; t = 4; a = 5; n = 2; b = 6; i = 6 等式为： 314 + 352 = 666\n",
      "第 566 种解法： p = 3; o = 1; t = 4; a = 7; n = 2; b = 6; i = 8 等式为： 314 + 372 = 686\n",
      "第 567 种解法： p = 3; o = 1; t = 4; a = 8; n = 2; b = 6; i = 9 等式为： 314 + 382 = 696\n",
      "第 568 种解法： p = 3; o = 1; t = 5; a = 9; n = 2; b = 7; i = 0 等式为： 315 + 392 = 707\n",
      "第 569 种解法： p = 3; o = 1; t = 7; a = 0; n = 9; b = 6; i = 2 等式为： 317 + 309 = 626\n",
      "第 570 种解法： p = 3; o = 1; t = 7; a = 2; n = 9; b = 6; i = 4 等式为： 317 + 329 = 646\n",
      "第 571 种解法： p = 3; o = 1; t = 7; a = 4; n = 9; b = 6; i = 6 等式为： 317 + 349 = 666\n",
      "第 572 种解法： p = 3; o = 1; t = 7; a = 5; n = 9; b = 6; i = 7 等式为： 317 + 359 = 676\n",
      "第 573 种解法： p = 3; o = 1; t = 9; a = 0; n = 7; b = 6; i = 2 等式为： 319 + 307 = 626\n",
      "第 574 种解法： p = 3; o = 1; t = 9; a = 2; n = 7; b = 6; i = 4 等式为： 319 + 327 = 646\n",
      "第 575 种解法： p = 3; o = 1; t = 9; a = 4; n = 7; b = 6; i = 6 等式为： 319 + 347 = 666\n",
      "第 576 种解法： p = 3; o = 1; t = 9; a = 5; n = 7; b = 6; i = 7 等式为： 319 + 357 = 676\n",
      "第 577 种解法： p = 3; o = 2; t = 1; a = 0; n = 5; b = 6; i = 2 等式为： 321 + 305 = 626\n",
      "第 578 种解法： p = 3; o = 2; t = 1; a = 4; n = 5; b = 6; i = 6 等式为： 321 + 345 = 666\n",
      "第 579 种解法： p = 3; o = 2; t = 1; a = 7; n = 5; b = 6; i = 9 等式为： 321 + 375 = 696\n",
      "第 580 种解法： p = 3; o = 2; t = 1; a = 8; n = 6; b = 7; i = 0 等式为： 321 + 386 = 707\n",
      "第 581 种解法： p = 3; o = 2; t = 1; a = 9; n = 6; b = 7; i = 1 等式为： 321 + 396 = 717\n",
      "第 582 种解法： p = 3; o = 2; t = 5; a = 0; n = 1; b = 6; i = 2 等式为： 325 + 301 = 626\n",
      "第 583 种解法： p = 3; o = 2; t = 5; a = 4; n = 1; b = 6; i = 6 等式为： 325 + 341 = 666\n",
      "第 584 种解法： p = 3; o = 2; t = 5; a = 7; n = 1; b = 6; i = 9 等式为： 325 + 371 = 696\n",
      "第 585 种解法： p = 3; o = 2; t = 6; a = 8; n = 1; b = 7; i = 0 等式为： 326 + 381 = 707\n",
      "第 586 种解法： p = 3; o = 2; t = 6; a = 9; n = 1; b = 7; i = 1 等式为： 326 + 391 = 717\n",
      "第 587 种解法： p = 3; o = 2; t = 7; a = 0; n = 9; b = 6; i = 3 等式为： 327 + 309 = 636\n",
      "第 588 种解法： p = 3; o = 2; t = 7; a = 1; n = 9; b = 6; i = 4 等式为： 327 + 319 = 646\n",
      "第 589 种解法： p = 3; o = 2; t = 7; a = 4; n = 9; b = 6; i = 7 等式为： 327 + 349 = 676\n",
      "第 590 种解法： p = 3; o = 2; t = 7; a = 5; n = 9; b = 6; i = 8 等式为： 327 + 359 = 686\n",
      "第 591 种解法： p = 3; o = 2; t = 9; a = 0; n = 7; b = 6; i = 3 等式为： 329 + 307 = 636\n",
      "第 592 种解法： p = 3; o = 2; t = 9; a = 1; n = 7; b = 6; i = 4 等式为： 329 + 317 = 646\n",
      "第 593 种解法： p = 3; o = 2; t = 9; a = 4; n = 7; b = 6; i = 7 等式为： 329 + 347 = 676\n",
      "第 594 种解法： p = 3; o = 2; t = 9; a = 5; n = 7; b = 6; i = 8 等式为： 329 + 357 = 686\n",
      "第 595 种解法： p = 3; o = 4; t = 1; a = 0; n = 5; b = 6; i = 4 等式为： 341 + 305 = 646\n",
      "第 596 种解法： p = 3; o = 4; t = 1; a = 2; n = 5; b = 6; i = 6 等式为： 341 + 325 = 666\n",
      "第 597 种解法： p = 3; o = 4; t = 1; a = 8; n = 6; b = 7; i = 2 等式为： 341 + 386 = 727\n",
      "第 598 种解法： p = 3; o = 4; t = 1; a = 9; n = 6; b = 7; i = 3 等式为： 341 + 396 = 737\n",
      "第 599 种解法： p = 3; o = 4; t = 2; a = 6; n = 5; b = 7; i = 0 等式为： 342 + 365 = 707\n",
      "第 600 种解法： p = 3; o = 4; t = 2; a = 8; n = 5; b = 7; i = 2 等式为： 342 + 385 = 727\n",
      "第 601 种解法： p = 3; o = 4; t = 2; a = 9; n = 5; b = 7; i = 3 等式为： 342 + 395 = 737\n",
      "第 602 种解法： p = 3; o = 4; t = 5; a = 0; n = 1; b = 6; i = 4 等式为： 345 + 301 = 646\n",
      "第 603 种解法： p = 3; o = 4; t = 5; a = 2; n = 1; b = 6; i = 6 等式为： 345 + 321 = 666\n",
      "第 604 种解法： p = 3; o = 4; t = 5; a = 6; n = 2; b = 7; i = 0 等式为： 345 + 362 = 707\n",
      "第 605 种解法： p = 3; o = 4; t = 5; a = 8; n = 2; b = 7; i = 2 等式为： 345 + 382 = 727\n",
      "第 606 种解法： p = 3; o = 4; t = 5; a = 9; n = 2; b = 7; i = 3 等式为： 345 + 392 = 737\n",
      "第 607 种解法： p = 3; o = 4; t = 6; a = 8; n = 1; b = 7; i = 2 等式为： 346 + 381 = 727\n",
      "第 608 种解法： p = 3; o = 4; t = 6; a = 9; n = 1; b = 7; i = 3 等式为： 346 + 391 = 737\n",
      "第 609 种解法： p = 3; o = 4; t = 7; a = 0; n = 9; b = 6; i = 5 等式为： 347 + 309 = 656\n",
      "第 610 种解法： p = 3; o = 4; t = 7; a = 1; n = 9; b = 6; i = 6 等式为： 347 + 319 = 666\n",
      "第 611 种解法： p = 3; o = 4; t = 7; a = 2; n = 9; b = 6; i = 7 等式为： 347 + 329 = 676\n",
      "第 612 种解法： p = 3; o = 4; t = 8; a = 5; n = 9; b = 7; i = 0 等式为： 348 + 359 = 707\n",
      "第 613 种解法： p = 3; o = 4; t = 8; a = 6; n = 9; b = 7; i = 1 等式为： 348 + 369 = 717\n",
      "第 614 种解法： p = 3; o = 4; t = 9; a = 0; n = 7; b = 6; i = 5 等式为： 349 + 307 = 656\n",
      "第 615 种解法： p = 3; o = 4; t = 9; a = 1; n = 7; b = 6; i = 6 等式为： 349 + 317 = 666\n",
      "第 616 种解法： p = 3; o = 4; t = 9; a = 2; n = 7; b = 6; i = 7 等式为： 349 + 327 = 676\n",
      "第 617 种解法： p = 3; o = 4; t = 9; a = 5; n = 8; b = 7; i = 0 等式为： 349 + 358 = 707\n",
      "第 618 种解法： p = 3; o = 4; t = 9; a = 6; n = 8; b = 7; i = 1 等式为： 349 + 368 = 717\n",
      "第 619 种解法： p = 3; o = 5; t = 1; a = 8; n = 6; b = 7; i = 3 等式为： 351 + 386 = 737\n",
      "第 620 种解法： p = 3; o = 5; t = 1; a = 9; n = 6; b = 7; i = 4 等式为： 351 + 396 = 747\n",
      "第 621 种解法： p = 3; o = 5; t = 2; a = 0; n = 4; b = 6; i = 5 等式为： 352 + 304 = 656\n",
      "第 622 种解法： p = 3; o = 5; t = 2; a = 1; n = 4; b = 6; i = 6 等式为： 352 + 314 = 666\n",
      "第 623 种解法： p = 3; o = 5; t = 4; a = 0; n = 2; b = 6; i = 5 等式为： 354 + 302 = 656\n",
      "第 624 种解法： p = 3; o = 5; t = 4; a = 1; n = 2; b = 6; i = 6 等式为： 354 + 312 = 666\n",
      "第 625 种解法： p = 3; o = 5; t = 6; a = 8; n = 1; b = 7; i = 3 等式为： 356 + 381 = 737\n",
      "第 626 种解法： p = 3; o = 5; t = 6; a = 9; n = 1; b = 7; i = 4 等式为： 356 + 391 = 747\n",
      "第 627 种解法： p = 3; o = 5; t = 7; a = 0; n = 9; b = 6; i = 6 等式为： 357 + 309 = 666\n",
      "第 628 种解法： p = 3; o = 5; t = 7; a = 1; n = 9; b = 6; i = 7 等式为： 357 + 319 = 676\n",
      "第 629 种解法： p = 3; o = 5; t = 7; a = 2; n = 9; b = 6; i = 8 等式为： 357 + 329 = 686\n",
      "第 630 种解法： p = 3; o = 5; t = 8; a = 4; n = 9; b = 7; i = 0 等式为： 358 + 349 = 707\n",
      "第 631 种解法： p = 3; o = 5; t = 8; a = 6; n = 9; b = 7; i = 2 等式为： 358 + 369 = 727\n",
      "第 632 种解法： p = 3; o = 5; t = 9; a = 0; n = 7; b = 6; i = 6 等式为： 359 + 307 = 666\n",
      "第 633 种解法： p = 3; o = 5; t = 9; a = 1; n = 7; b = 6; i = 7 等式为： 359 + 317 = 676\n",
      "第 634 种解法： p = 3; o = 5; t = 9; a = 2; n = 7; b = 6; i = 8 等式为： 359 + 327 = 686\n",
      "第 635 种解法： p = 3; o = 5; t = 9; a = 4; n = 8; b = 7; i = 0 等式为： 359 + 348 = 707\n",
      "第 636 种解法： p = 3; o = 5; t = 9; a = 6; n = 8; b = 7; i = 2 等式为： 359 + 368 = 727\n",
      "第 637 种解法： p = 3; o = 6; t = 2; a = 4; n = 5; b = 7; i = 0 等式为： 362 + 345 = 707\n",
      "第 638 种解法： p = 3; o = 6; t = 2; a = 8; n = 5; b = 7; i = 4 等式为： 362 + 385 = 747\n",
      "第 639 种解法： p = 3; o = 6; t = 2; a = 9; n = 5; b = 7; i = 5 等式为： 362 + 395 = 757\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "第 640 种解法： p = 3; o = 6; t = 5; a = 4; n = 2; b = 7; i = 0 等式为： 365 + 342 = 707\n",
      "第 641 种解法： p = 3; o = 6; t = 5; a = 8; n = 2; b = 7; i = 4 等式为： 365 + 382 = 747\n",
      "第 642 种解法： p = 3; o = 6; t = 5; a = 9; n = 2; b = 7; i = 5 等式为： 365 + 392 = 757\n",
      "第 643 种解法： p = 3; o = 6; t = 8; a = 4; n = 9; b = 7; i = 1 等式为： 368 + 349 = 717\n",
      "第 644 种解法： p = 3; o = 6; t = 8; a = 5; n = 9; b = 7; i = 2 等式为： 368 + 359 = 727\n",
      "第 645 种解法： p = 3; o = 6; t = 9; a = 4; n = 8; b = 7; i = 1 等式为： 369 + 348 = 717\n",
      "第 646 种解法： p = 3; o = 6; t = 9; a = 5; n = 8; b = 7; i = 2 等式为： 369 + 358 = 727\n",
      "第 647 种解法： p = 3; o = 7; t = 1; a = 0; n = 5; b = 6; i = 7 等式为： 371 + 305 = 676\n",
      "第 648 种解法： p = 3; o = 7; t = 1; a = 2; n = 5; b = 6; i = 9 等式为： 371 + 325 = 696\n",
      "第 649 种解法： p = 3; o = 7; t = 2; a = 0; n = 4; b = 6; i = 7 等式为： 372 + 304 = 676\n",
      "第 650 种解法： p = 3; o = 7; t = 2; a = 1; n = 4; b = 6; i = 8 等式为： 372 + 314 = 686\n",
      "第 651 种解法： p = 3; o = 7; t = 4; a = 0; n = 2; b = 6; i = 7 等式为： 374 + 302 = 676\n",
      "第 652 种解法： p = 3; o = 7; t = 4; a = 1; n = 2; b = 6; i = 8 等式为： 374 + 312 = 686\n",
      "第 653 种解法： p = 3; o = 7; t = 5; a = 0; n = 1; b = 6; i = 7 等式为： 375 + 301 = 676\n",
      "第 654 种解法： p = 3; o = 7; t = 5; a = 2; n = 1; b = 6; i = 9 等式为： 375 + 321 = 696\n",
      "第 655 种解法： p = 3; o = 8; t = 1; a = 0; n = 5; b = 6; i = 8 等式为： 381 + 305 = 686\n",
      "第 656 种解法： p = 3; o = 8; t = 1; a = 2; n = 6; b = 7; i = 0 等式为： 381 + 326 = 707\n",
      "第 657 种解法： p = 3; o = 8; t = 1; a = 4; n = 6; b = 7; i = 2 等式为： 381 + 346 = 727\n",
      "第 658 种解法： p = 3; o = 8; t = 1; a = 5; n = 6; b = 7; i = 3 等式为： 381 + 356 = 737\n",
      "第 659 种解法： p = 3; o = 8; t = 1; a = 9; n = 6; b = 7; i = 7 等式为： 381 + 396 = 777\n",
      "第 660 种解法： p = 3; o = 8; t = 2; a = 0; n = 4; b = 6; i = 8 等式为： 382 + 304 = 686\n",
      "第 661 种解法： p = 3; o = 8; t = 2; a = 1; n = 4; b = 6; i = 9 等式为： 382 + 314 = 696\n",
      "第 662 种解法： p = 3; o = 8; t = 2; a = 4; n = 5; b = 7; i = 2 等式为： 382 + 345 = 727\n",
      "第 663 种解法： p = 3; o = 8; t = 2; a = 6; n = 5; b = 7; i = 4 等式为： 382 + 365 = 747\n",
      "第 664 种解法： p = 3; o = 8; t = 2; a = 9; n = 5; b = 7; i = 7 等式为： 382 + 395 = 777\n",
      "第 665 种解法： p = 3; o = 8; t = 4; a = 0; n = 2; b = 6; i = 8 等式为： 384 + 302 = 686\n",
      "第 666 种解法： p = 3; o = 8; t = 4; a = 1; n = 2; b = 6; i = 9 等式为： 384 + 312 = 696\n",
      "第 667 种解法： p = 3; o = 8; t = 5; a = 0; n = 1; b = 6; i = 8 等式为： 385 + 301 = 686\n",
      "第 668 种解法： p = 3; o = 8; t = 5; a = 4; n = 2; b = 7; i = 2 等式为： 385 + 342 = 727\n",
      "第 669 种解法： p = 3; o = 8; t = 5; a = 6; n = 2; b = 7; i = 4 等式为： 385 + 362 = 747\n",
      "第 670 种解法： p = 3; o = 8; t = 5; a = 9; n = 2; b = 7; i = 7 等式为： 385 + 392 = 777\n",
      "第 671 种解法： p = 3; o = 8; t = 6; a = 2; n = 1; b = 7; i = 0 等式为： 386 + 321 = 707\n",
      "第 672 种解法： p = 3; o = 8; t = 6; a = 4; n = 1; b = 7; i = 2 等式为： 386 + 341 = 727\n",
      "第 673 种解法： p = 3; o = 8; t = 6; a = 5; n = 1; b = 7; i = 3 等式为： 386 + 351 = 737\n",
      "第 674 种解法： p = 3; o = 8; t = 6; a = 9; n = 1; b = 7; i = 7 等式为： 386 + 391 = 777\n",
      "第 675 种解法： p = 3; o = 8; t = 7; a = 0; n = 9; b = 6; i = 9 等式为： 387 + 309 = 696\n",
      "第 676 种解法： p = 3; o = 8; t = 9; a = 0; n = 7; b = 6; i = 9 等式为： 389 + 307 = 696\n",
      "第 677 种解法： p = 3; o = 9; t = 1; a = 0; n = 5; b = 6; i = 9 等式为： 391 + 305 = 696\n",
      "第 678 种解法： p = 3; o = 9; t = 1; a = 2; n = 6; b = 7; i = 1 等式为： 391 + 326 = 717\n",
      "第 679 种解法： p = 3; o = 9; t = 1; a = 4; n = 6; b = 7; i = 3 等式为： 391 + 346 = 737\n",
      "第 680 种解法： p = 3; o = 9; t = 1; a = 5; n = 6; b = 7; i = 4 等式为： 391 + 356 = 747\n",
      "第 681 种解法： p = 3; o = 9; t = 1; a = 8; n = 6; b = 7; i = 7 等式为： 391 + 386 = 777\n",
      "第 682 种解法： p = 3; o = 9; t = 2; a = 0; n = 4; b = 6; i = 9 等式为： 392 + 304 = 696\n",
      "第 683 种解法： p = 3; o = 9; t = 2; a = 1; n = 5; b = 7; i = 0 等式为： 392 + 315 = 707\n",
      "第 684 种解法： p = 3; o = 9; t = 2; a = 4; n = 5; b = 7; i = 3 等式为： 392 + 345 = 737\n",
      "第 685 种解法： p = 3; o = 9; t = 2; a = 6; n = 5; b = 7; i = 5 等式为： 392 + 365 = 757\n",
      "第 686 种解法： p = 3; o = 9; t = 2; a = 8; n = 5; b = 7; i = 7 等式为： 392 + 385 = 777\n",
      "第 687 种解法： p = 3; o = 9; t = 4; a = 0; n = 2; b = 6; i = 9 等式为： 394 + 302 = 696\n",
      "第 688 种解法： p = 3; o = 9; t = 5; a = 0; n = 1; b = 6; i = 9 等式为： 395 + 301 = 696\n",
      "第 689 种解法： p = 3; o = 9; t = 5; a = 1; n = 2; b = 7; i = 0 等式为： 395 + 312 = 707\n",
      "第 690 种解法： p = 3; o = 9; t = 5; a = 4; n = 2; b = 7; i = 3 等式为： 395 + 342 = 737\n",
      "第 691 种解法： p = 3; o = 9; t = 5; a = 6; n = 2; b = 7; i = 5 等式为： 395 + 362 = 757\n",
      "第 692 种解法： p = 3; o = 9; t = 5; a = 8; n = 2; b = 7; i = 7 等式为： 395 + 382 = 777\n",
      "第 693 种解法： p = 3; o = 9; t = 6; a = 2; n = 1; b = 7; i = 1 等式为： 396 + 321 = 717\n",
      "第 694 种解法： p = 3; o = 9; t = 6; a = 4; n = 1; b = 7; i = 3 等式为： 396 + 341 = 737\n",
      "第 695 种解法： p = 3; o = 9; t = 6; a = 5; n = 1; b = 7; i = 4 等式为： 396 + 351 = 747\n",
      "第 696 种解法： p = 3; o = 9; t = 6; a = 8; n = 1; b = 7; i = 7 等式为： 396 + 381 = 777\n",
      "第 697 种解法： p = 4; o = 0; t = 1; a = 2; n = 7; b = 8; i = 2 等式为： 401 + 427 = 828\n",
      "第 698 种解法： p = 4; o = 0; t = 1; a = 3; n = 7; b = 8; i = 3 等式为： 401 + 437 = 838\n",
      "第 699 种解法： p = 4; o = 0; t = 1; a = 5; n = 7; b = 8; i = 5 等式为： 401 + 457 = 858\n",
      "第 700 种解法： p = 4; o = 0; t = 1; a = 6; n = 7; b = 8; i = 6 等式为： 401 + 467 = 868\n",
      "第 701 种解法： p = 4; o = 0; t = 1; a = 9; n = 7; b = 8; i = 9 等式为： 401 + 497 = 898\n",
      "第 702 种解法： p = 4; o = 0; t = 2; a = 1; n = 6; b = 8; i = 1 等式为： 402 + 416 = 818\n",
      "第 703 种解法： p = 4; o = 0; t = 2; a = 3; n = 6; b = 8; i = 3 等式为： 402 + 436 = 838\n",
      "第 704 种解法： p = 4; o = 0; t = 2; a = 5; n = 6; b = 8; i = 5 等式为： 402 + 456 = 858\n",
      "第 705 种解法： p = 4; o = 0; t = 2; a = 7; n = 6; b = 8; i = 7 等式为： 402 + 476 = 878\n",
      "第 706 种解法： p = 4; o = 0; t = 2; a = 9; n = 6; b = 8; i = 9 等式为： 402 + 496 = 898\n",
      "第 707 种解法： p = 4; o = 0; t = 3; a = 1; n = 5; b = 8; i = 1 等式为： 403 + 415 = 818\n",
      "第 708 种解法： p = 4; o = 0; t = 3; a = 2; n = 5; b = 8; i = 2 等式为： 403 + 425 = 828\n",
      "第 709 种解法： p = 4; o = 0; t = 3; a = 6; n = 5; b = 8; i = 6 等式为： 403 + 465 = 868\n",
      "第 710 种解法： p = 4; o = 0; t = 3; a = 7; n = 5; b = 8; i = 7 等式为： 403 + 475 = 878\n",
      "第 711 种解法： p = 4; o = 0; t = 3; a = 9; n = 5; b = 8; i = 9 等式为： 403 + 495 = 898\n",
      "第 712 种解法： p = 4; o = 0; t = 5; a = 1; n = 3; b = 8; i = 1 等式为： 405 + 413 = 818\n",
      "第 713 种解法： p = 4; o = 0; t = 5; a = 2; n = 3; b = 8; i = 2 等式为： 405 + 423 = 828\n",
      "第 714 种解法： p = 4; o = 0; t = 5; a = 6; n = 3; b = 8; i = 6 等式为： 405 + 463 = 868\n",
      "第 715 种解法： p = 4; o = 0; t = 5; a = 7; n = 3; b = 8; i = 7 等式为： 405 + 473 = 878\n",
      "第 716 种解法： p = 4; o = 0; t = 5; a = 9; n = 3; b = 8; i = 9 等式为： 405 + 493 = 898\n",
      "第 717 种解法： p = 4; o = 0; t = 6; a = 1; n = 2; b = 8; i = 1 等式为： 406 + 412 = 818\n",
      "第 718 种解法： p = 4; o = 0; t = 6; a = 3; n = 2; b = 8; i = 3 等式为： 406 + 432 = 838\n",
      "第 719 种解法： p = 4; o = 0; t = 6; a = 5; n = 2; b = 8; i = 5 等式为： 406 + 452 = 858\n",
      "第 720 种解法： p = 4; o = 0; t = 6; a = 7; n = 2; b = 8; i = 7 等式为： 406 + 472 = 878\n",
      "第 721 种解法： p = 4; o = 0; t = 6; a = 9; n = 2; b = 8; i = 9 等式为： 406 + 492 = 898\n",
      "第 722 种解法： p = 4; o = 0; t = 7; a = 2; n = 1; b = 8; i = 2 等式为： 407 + 421 = 828\n",
      "第 723 种解法： p = 4; o = 0; t = 7; a = 3; n = 1; b = 8; i = 3 等式为： 407 + 431 = 838\n",
      "第 724 种解法： p = 4; o = 0; t = 7; a = 5; n = 1; b = 8; i = 5 等式为： 407 + 451 = 858\n",
      "第 725 种解法： p = 4; o = 0; t = 7; a = 6; n = 1; b = 8; i = 6 等式为： 407 + 461 = 868\n",
      "第 726 种解法： p = 4; o = 0; t = 7; a = 9; n = 1; b = 8; i = 9 等式为： 407 + 491 = 898\n",
      "第 727 种解法： p = 4; o = 1; t = 2; a = 0; n = 6; b = 8; i = 1 等式为： 412 + 406 = 818\n",
      "第 728 种解法： p = 4; o = 1; t = 2; a = 3; n = 6; b = 8; i = 4 等式为： 412 + 436 = 848\n",
      "第 729 种解法： p = 4; o = 1; t = 2; a = 5; n = 6; b = 8; i = 6 等式为： 412 + 456 = 868\n",
      "第 730 种解法： p = 4; o = 1; t = 2; a = 7; n = 6; b = 8; i = 8 等式为： 412 + 476 = 888\n",
      "第 731 种解法： p = 4; o = 1; t = 3; a = 0; n = 5; b = 8; i = 1 等式为： 413 + 405 = 818\n",
      "第 732 种解法： p = 4; o = 1; t = 3; a = 2; n = 5; b = 8; i = 3 等式为： 413 + 425 = 838\n",
      "第 733 种解法： p = 4; o = 1; t = 3; a = 6; n = 5; b = 8; i = 7 等式为： 413 + 465 = 878\n",
      "第 734 种解法： p = 4; o = 1; t = 3; a = 7; n = 5; b = 8; i = 8 等式为： 413 + 475 = 888\n",
      "第 735 种解法： p = 4; o = 1; t = 5; a = 0; n = 3; b = 8; i = 1 等式为： 415 + 403 = 818\n",
      "第 736 种解法： p = 4; o = 1; t = 5; a = 2; n = 3; b = 8; i = 3 等式为： 415 + 423 = 838\n",
      "第 737 种解法： p = 4; o = 1; t = 5; a = 6; n = 3; b = 8; i = 7 等式为： 415 + 463 = 878\n",
      "第 738 种解法： p = 4; o = 1; t = 5; a = 7; n = 3; b = 8; i = 8 等式为： 415 + 473 = 888\n",
      "第 739 种解法： p = 4; o = 1; t = 6; a = 0; n = 2; b = 8; i = 1 等式为： 416 + 402 = 818\n",
      "第 740 种解法： p = 4; o = 1; t = 6; a = 3; n = 2; b = 8; i = 4 等式为： 416 + 432 = 848\n",
      "第 741 种解法： p = 4; o = 1; t = 6; a = 5; n = 2; b = 8; i = 6 等式为： 416 + 452 = 868\n",
      "第 742 种解法： p = 4; o = 1; t = 6; a = 7; n = 2; b = 8; i = 8 等式为： 416 + 472 = 888\n",
      "第 743 种解法： p = 4; o = 2; t = 1; a = 0; n = 7; b = 8; i = 2 等式为： 421 + 407 = 828\n",
      "第 744 种解法： p = 4; o = 2; t = 1; a = 3; n = 7; b = 8; i = 5 等式为： 421 + 437 = 858\n",
      "第 745 种解法： p = 4; o = 2; t = 1; a = 5; n = 7; b = 8; i = 7 等式为： 421 + 457 = 878\n",
      "第 746 种解法： p = 4; o = 2; t = 1; a = 6; n = 7; b = 8; i = 8 等式为： 421 + 467 = 888\n",
      "第 747 种解法： p = 4; o = 2; t = 3; a = 0; n = 5; b = 8; i = 2 等式为： 423 + 405 = 828\n",
      "第 748 种解法： p = 4; o = 2; t = 3; a = 1; n = 5; b = 8; i = 3 等式为： 423 + 415 = 838\n",
      "第 749 种解法： p = 4; o = 2; t = 3; a = 6; n = 5; b = 8; i = 8 等式为： 423 + 465 = 888\n",
      "第 750 种解法： p = 4; o = 2; t = 3; a = 7; n = 5; b = 8; i = 9 等式为： 423 + 475 = 898\n",
      "第 751 种解法： p = 4; o = 2; t = 3; a = 8; n = 6; b = 9; i = 0 等式为： 423 + 486 = 909\n",
      "第 752 种解法： p = 4; o = 2; t = 5; a = 0; n = 3; b = 8; i = 2 等式为： 425 + 403 = 828\n",
      "第 753 种解法： p = 4; o = 2; t = 5; a = 1; n = 3; b = 8; i = 3 等式为： 425 + 413 = 838\n",
      "第 754 种解法： p = 4; o = 2; t = 5; a = 6; n = 3; b = 8; i = 8 等式为： 425 + 463 = 888\n",
      "第 755 种解法： p = 4; o = 2; t = 5; a = 7; n = 3; b = 8; i = 9 等式为： 425 + 473 = 898\n",
      "第 756 种解法： p = 4; o = 2; t = 6; a = 8; n = 3; b = 9; i = 0 等式为： 426 + 483 = 909\n",
      "第 757 种解法： p = 4; o = 2; t = 7; a = 0; n = 1; b = 8; i = 2 等式为： 427 + 401 = 828\n",
      "第 758 种解法： p = 4; o = 2; t = 7; a = 3; n = 1; b = 8; i = 5 等式为： 427 + 431 = 858\n",
      "第 759 种解法： p = 4; o = 2; t = 7; a = 5; n = 1; b = 8; i = 7 等式为： 427 + 451 = 878\n",
      "第 760 种解法： p = 4; o = 2; t = 7; a = 6; n = 1; b = 8; i = 8 等式为： 427 + 461 = 888\n",
      "第 761 种解法： p = 4; o = 3; t = 1; a = 0; n = 7; b = 8; i = 3 等式为： 431 + 407 = 838\n",
      "第 762 种解法： p = 4; o = 3; t = 1; a = 2; n = 7; b = 8; i = 5 等式为： 431 + 427 = 858\n",
      "第 763 种解法： p = 4; o = 3; t = 1; a = 5; n = 7; b = 8; i = 8 等式为： 431 + 457 = 888\n",
      "第 764 种解法： p = 4; o = 3; t = 1; a = 6; n = 7; b = 8; i = 9 等式为： 431 + 467 = 898\n",
      "第 765 种解法： p = 4; o = 3; t = 1; a = 7; n = 8; b = 9; i = 0 等式为： 431 + 478 = 909\n",
      "第 766 种解法： p = 4; o = 3; t = 2; a = 0; n = 6; b = 8; i = 3 等式为： 432 + 406 = 838\n",
      "第 767 种解法： p = 4; o = 3; t = 2; a = 1; n = 6; b = 8; i = 4 等式为： 432 + 416 = 848\n",
      "第 768 种解法： p = 4; o = 3; t = 2; a = 5; n = 6; b = 8; i = 8 等式为： 432 + 456 = 888\n",
      "第 769 种解法： p = 4; o = 3; t = 2; a = 8; n = 7; b = 9; i = 1 等式为： 432 + 487 = 919\n",
      "第 770 种解法： p = 4; o = 3; t = 6; a = 0; n = 2; b = 8; i = 3 等式为： 436 + 402 = 838\n",
      "第 771 种解法： p = 4; o = 3; t = 6; a = 1; n = 2; b = 8; i = 4 等式为： 436 + 412 = 848\n",
      "第 772 种解法： p = 4; o = 3; t = 6; a = 5; n = 2; b = 8; i = 8 等式为： 436 + 452 = 888\n",
      "第 773 种解法： p = 4; o = 3; t = 7; a = 0; n = 1; b = 8; i = 3 等式为： 437 + 401 = 838\n",
      "第 774 种解法： p = 4; o = 3; t = 7; a = 2; n = 1; b = 8; i = 5 等式为： 437 + 421 = 858\n",
      "第 775 种解法： p = 4; o = 3; t = 7; a = 5; n = 1; b = 8; i = 8 等式为： 437 + 451 = 888\n",
      "第 776 种解法： p = 4; o = 3; t = 7; a = 6; n = 1; b = 8; i = 9 等式为： 437 + 461 = 898\n",
      "第 777 种解法： p = 4; o = 3; t = 7; a = 8; n = 2; b = 9; i = 1 等式为： 437 + 482 = 919\n",
      "第 778 种解法： p = 4; o = 3; t = 8; a = 7; n = 1; b = 9; i = 0 等式为： 438 + 471 = 909\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "第 779 种解法： p = 4; o = 5; t = 1; a = 0; n = 7; b = 8; i = 5 等式为： 451 + 407 = 858\n",
      "第 780 种解法： p = 4; o = 5; t = 1; a = 2; n = 7; b = 8; i = 7 等式为： 451 + 427 = 878\n",
      "第 781 种解法： p = 4; o = 5; t = 1; a = 3; n = 7; b = 8; i = 8 等式为： 451 + 437 = 888\n",
      "第 782 种解法： p = 4; o = 5; t = 1; a = 6; n = 8; b = 9; i = 1 等式为： 451 + 468 = 919\n",
      "第 783 种解法： p = 4; o = 5; t = 1; a = 7; n = 8; b = 9; i = 2 等式为： 451 + 478 = 929\n",
      "第 784 种解法： p = 4; o = 5; t = 2; a = 0; n = 6; b = 8; i = 5 等式为： 452 + 406 = 858\n",
      "第 785 种解法： p = 4; o = 5; t = 2; a = 1; n = 6; b = 8; i = 6 等式为： 452 + 416 = 868\n",
      "第 786 种解法： p = 4; o = 5; t = 2; a = 3; n = 6; b = 8; i = 8 等式为： 452 + 436 = 888\n",
      "第 787 种解法： p = 4; o = 5; t = 2; a = 6; n = 7; b = 9; i = 1 等式为： 452 + 467 = 919\n",
      "第 788 种解法： p = 4; o = 5; t = 2; a = 8; n = 7; b = 9; i = 3 等式为： 452 + 487 = 939\n",
      "第 789 种解法： p = 4; o = 5; t = 3; a = 7; n = 6; b = 9; i = 2 等式为： 453 + 476 = 929\n",
      "第 790 种解法： p = 4; o = 5; t = 3; a = 8; n = 6; b = 9; i = 3 等式为： 453 + 486 = 939\n",
      "第 791 种解法： p = 4; o = 5; t = 6; a = 0; n = 2; b = 8; i = 5 等式为： 456 + 402 = 858\n",
      "第 792 种解法： p = 4; o = 5; t = 6; a = 1; n = 2; b = 8; i = 6 等式为： 456 + 412 = 868\n",
      "第 793 种解法： p = 4; o = 5; t = 6; a = 3; n = 2; b = 8; i = 8 等式为： 456 + 432 = 888\n",
      "第 794 种解法： p = 4; o = 5; t = 6; a = 7; n = 3; b = 9; i = 2 等式为： 456 + 473 = 929\n",
      "第 795 种解法： p = 4; o = 5; t = 6; a = 8; n = 3; b = 9; i = 3 等式为： 456 + 483 = 939\n",
      "第 796 种解法： p = 4; o = 5; t = 7; a = 0; n = 1; b = 8; i = 5 等式为： 457 + 401 = 858\n",
      "第 797 种解法： p = 4; o = 5; t = 7; a = 2; n = 1; b = 8; i = 7 等式为： 457 + 421 = 878\n",
      "第 798 种解法： p = 4; o = 5; t = 7; a = 3; n = 1; b = 8; i = 8 等式为： 457 + 431 = 888\n",
      "第 799 种解法： p = 4; o = 5; t = 7; a = 6; n = 2; b = 9; i = 1 等式为： 457 + 462 = 919\n",
      "第 800 种解法： p = 4; o = 5; t = 7; a = 8; n = 2; b = 9; i = 3 等式为： 457 + 482 = 939\n",
      "第 801 种解法： p = 4; o = 5; t = 8; a = 6; n = 1; b = 9; i = 1 等式为： 458 + 461 = 919\n",
      "第 802 种解法： p = 4; o = 5; t = 8; a = 7; n = 1; b = 9; i = 2 等式为： 458 + 471 = 929\n",
      "第 803 种解法： p = 4; o = 6; t = 1; a = 0; n = 7; b = 8; i = 6 等式为： 461 + 407 = 868\n",
      "第 804 种解法： p = 4; o = 6; t = 1; a = 2; n = 7; b = 8; i = 8 等式为： 461 + 427 = 888\n",
      "第 805 种解法： p = 4; o = 6; t = 1; a = 3; n = 7; b = 8; i = 9 等式为： 461 + 437 = 898\n",
      "第 806 种解法： p = 4; o = 6; t = 1; a = 5; n = 8; b = 9; i = 1 等式为： 461 + 458 = 919\n",
      "第 807 种解法： p = 4; o = 6; t = 1; a = 7; n = 8; b = 9; i = 3 等式为： 461 + 478 = 939\n",
      "第 808 种解法： p = 4; o = 6; t = 2; a = 5; n = 7; b = 9; i = 1 等式为： 462 + 457 = 919\n",
      "第 809 种解法： p = 4; o = 6; t = 2; a = 8; n = 7; b = 9; i = 4 等式为： 462 + 487 = 949\n",
      "第 810 种解法： p = 4; o = 6; t = 3; a = 0; n = 5; b = 8; i = 6 等式为： 463 + 405 = 868\n",
      "第 811 种解法： p = 4; o = 6; t = 3; a = 1; n = 5; b = 8; i = 7 等式为： 463 + 415 = 878\n",
      "第 812 种解法： p = 4; o = 6; t = 3; a = 2; n = 5; b = 8; i = 8 等式为： 463 + 425 = 888\n",
      "第 813 种解法： p = 4; o = 6; t = 5; a = 0; n = 3; b = 8; i = 6 等式为： 465 + 403 = 868\n",
      "第 814 种解法： p = 4; o = 6; t = 5; a = 1; n = 3; b = 8; i = 7 等式为： 465 + 413 = 878\n",
      "第 815 种解法： p = 4; o = 6; t = 5; a = 2; n = 3; b = 8; i = 8 等式为： 465 + 423 = 888\n",
      "第 816 种解法： p = 4; o = 6; t = 7; a = 0; n = 1; b = 8; i = 6 等式为： 467 + 401 = 868\n",
      "第 817 种解法： p = 4; o = 6; t = 7; a = 2; n = 1; b = 8; i = 8 等式为： 467 + 421 = 888\n",
      "第 818 种解法： p = 4; o = 6; t = 7; a = 3; n = 1; b = 8; i = 9 等式为： 467 + 431 = 898\n",
      "第 819 种解法： p = 4; o = 6; t = 7; a = 5; n = 2; b = 9; i = 1 等式为： 467 + 452 = 919\n",
      "第 820 种解法： p = 4; o = 6; t = 7; a = 8; n = 2; b = 9; i = 4 等式为： 467 + 482 = 949\n",
      "第 821 种解法： p = 4; o = 6; t = 8; a = 5; n = 1; b = 9; i = 1 等式为： 468 + 451 = 919\n",
      "第 822 种解法： p = 4; o = 6; t = 8; a = 7; n = 1; b = 9; i = 3 等式为： 468 + 471 = 939\n",
      "第 823 种解法： p = 4; o = 7; t = 1; a = 3; n = 8; b = 9; i = 0 等式为： 471 + 438 = 909\n",
      "第 824 种解法： p = 4; o = 7; t = 1; a = 5; n = 8; b = 9; i = 2 等式为： 471 + 458 = 929\n",
      "第 825 种解法： p = 4; o = 7; t = 1; a = 6; n = 8; b = 9; i = 3 等式为： 471 + 468 = 939\n",
      "第 826 种解法： p = 4; o = 7; t = 2; a = 0; n = 6; b = 8; i = 7 等式为： 472 + 406 = 878\n",
      "第 827 种解法： p = 4; o = 7; t = 2; a = 1; n = 6; b = 8; i = 8 等式为： 472 + 416 = 888\n",
      "第 828 种解法： p = 4; o = 7; t = 3; a = 0; n = 5; b = 8; i = 7 等式为： 473 + 405 = 878\n",
      "第 829 种解法： p = 4; o = 7; t = 3; a = 1; n = 5; b = 8; i = 8 等式为： 473 + 415 = 888\n",
      "第 830 种解法： p = 4; o = 7; t = 3; a = 2; n = 5; b = 8; i = 9 等式为： 473 + 425 = 898\n",
      "第 831 种解法： p = 4; o = 7; t = 3; a = 5; n = 6; b = 9; i = 2 等式为： 473 + 456 = 929\n",
      "第 832 种解法： p = 4; o = 7; t = 3; a = 8; n = 6; b = 9; i = 5 等式为： 473 + 486 = 959\n",
      "第 833 种解法： p = 4; o = 7; t = 5; a = 0; n = 3; b = 8; i = 7 等式为： 475 + 403 = 878\n",
      "第 834 种解法： p = 4; o = 7; t = 5; a = 1; n = 3; b = 8; i = 8 等式为： 475 + 413 = 888\n",
      "第 835 种解法： p = 4; o = 7; t = 5; a = 2; n = 3; b = 8; i = 9 等式为： 475 + 423 = 898\n",
      "第 836 种解法： p = 4; o = 7; t = 6; a = 0; n = 2; b = 8; i = 7 等式为： 476 + 402 = 878\n",
      "第 837 种解法： p = 4; o = 7; t = 6; a = 1; n = 2; b = 8; i = 8 等式为： 476 + 412 = 888\n",
      "第 838 种解法： p = 4; o = 7; t = 6; a = 5; n = 3; b = 9; i = 2 等式为： 476 + 453 = 929\n",
      "第 839 种解法： p = 4; o = 7; t = 6; a = 8; n = 3; b = 9; i = 5 等式为： 476 + 483 = 959\n",
      "第 840 种解法： p = 4; o = 7; t = 8; a = 3; n = 1; b = 9; i = 0 等式为： 478 + 431 = 909\n",
      "第 841 种解法： p = 4; o = 7; t = 8; a = 5; n = 1; b = 9; i = 2 等式为： 478 + 451 = 929\n",
      "第 842 种解法： p = 4; o = 7; t = 8; a = 6; n = 1; b = 9; i = 3 等式为： 478 + 461 = 939\n",
      "第 843 种解法： p = 4; o = 8; t = 2; a = 3; n = 7; b = 9; i = 1 等式为： 482 + 437 = 919\n",
      "第 844 种解法： p = 4; o = 8; t = 2; a = 5; n = 7; b = 9; i = 3 等式为： 482 + 457 = 939\n",
      "第 845 种解法： p = 4; o = 8; t = 2; a = 6; n = 7; b = 9; i = 4 等式为： 482 + 467 = 949\n",
      "第 846 种解法： p = 4; o = 8; t = 3; a = 2; n = 6; b = 9; i = 0 等式为： 483 + 426 = 909\n",
      "第 847 种解法： p = 4; o = 8; t = 3; a = 5; n = 6; b = 9; i = 3 等式为： 483 + 456 = 939\n",
      "第 848 种解法： p = 4; o = 8; t = 3; a = 7; n = 6; b = 9; i = 5 等式为： 483 + 476 = 959\n",
      "第 849 种解法： p = 4; o = 8; t = 6; a = 2; n = 3; b = 9; i = 0 等式为： 486 + 423 = 909\n",
      "第 850 种解法： p = 4; o = 8; t = 6; a = 5; n = 3; b = 9; i = 3 等式为： 486 + 453 = 939\n",
      "第 851 种解法： p = 4; o = 8; t = 6; a = 7; n = 3; b = 9; i = 5 等式为： 486 + 473 = 959\n",
      "第 852 种解法： p = 4; o = 8; t = 7; a = 3; n = 2; b = 9; i = 1 等式为： 487 + 432 = 919\n",
      "第 853 种解法： p = 4; o = 8; t = 7; a = 5; n = 2; b = 9; i = 3 等式为： 487 + 452 = 939\n",
      "第 854 种解法： p = 4; o = 8; t = 7; a = 6; n = 2; b = 9; i = 4 等式为： 487 + 462 = 949\n",
      "第 855 种解法： p = 4; o = 9; t = 1; a = 0; n = 7; b = 8; i = 9 等式为： 491 + 407 = 898\n",
      "第 856 种解法： p = 4; o = 9; t = 2; a = 0; n = 6; b = 8; i = 9 等式为： 492 + 406 = 898\n",
      "第 857 种解法： p = 4; o = 9; t = 3; a = 0; n = 5; b = 8; i = 9 等式为： 493 + 405 = 898\n",
      "第 858 种解法： p = 4; o = 9; t = 5; a = 0; n = 3; b = 8; i = 9 等式为： 495 + 403 = 898\n",
      "第 859 种解法： p = 4; o = 9; t = 6; a = 0; n = 2; b = 8; i = 9 等式为： 496 + 402 = 898\n",
      "第 860 种解法： p = 4; o = 9; t = 7; a = 0; n = 1; b = 8; i = 9 等式为： 497 + 401 = 898\n",
      "共 860 种解法！\n"
     ]
    }
   ],
   "source": [
    "num = 0\n",
    "for i in range(0, 10):\n",
    "    for j in range(0, 10):\n",
    "        for x in range(0, 10):\n",
    "            for y in range(0, 10):\n",
    "                for z in range(0, 10):\n",
    "                    for t in range(0, 10):\n",
    "                        for m in range(0, 10):\n",
    "                            if len(set((i, j, x, y, z, t))) == 6:\n",
    "                                a = i*100 + j*10 + x\n",
    "                                b = i*100 + y*10 + z\n",
    "                                c = t*100 + m*10 + t\n",
    "                                if a + b == c:\n",
    "                                    num += 1\n",
    "                                    print('第', num, '种解法：', \n",
    "                                          'p = {}; o = {}; t = {}; a = {}; n = {}; b = {}; i = {}'.format(i, j, x, y, z, t, m), \n",
    "                                          '等式为：', '{} + {} = {}'.format(a, b, c))\n",
    "print('共', num, '种解法！')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "P-4.27"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [],
   "source": [
    "import os\n",
    "\n",
    "def walk(path):\n",
    "    a = []\n",
    "    b = []\n",
    "    if os.path.isdir(path):\n",
    "        for i in os.listdir(path):\n",
    "            if os.path.isdir(os.path.join(path, i)):\n",
    "                a.append(i)\n",
    "            else:\n",
    "                b.append(i)\n",
    "    return [path, a, b]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "['C:/Users/w/Desktop/python_jupyter', ['.ipynb_checkpoints', 'jupyter notebook 入门', 'Python数据分析学习', 'Python编程——从入门到实践', '携程评论爬虫', '数据结构与算法', '机器学习、深度学习', '碎片'], []]\n",
      "['C:/Users/w/Desktop/R/统计软件/homework', ['case_data_2018-10-25', 'case_data_2018-11-06', 'case_data_2018-11-23', 'case_data_2018-11-30', 'chuzu', 'statistics', '图像处理', '统计软件第七次'], ['case_data_2018-10-25.zip', 'case_data_2018-11-06.zip', 'case_data_2018-11-23.zip', 'case_data_2018-11-30.zip', 'chexian.csv', 'comments_infor.csv', 'data.xlsx', 'HW_1.html', 'HW_2.html', 'HW_3.html', 'HW_4.html', 'HW_5.html', 'HW_6.html', 'HW_7.html', 'phone_infor.csv', 'stopwords.dat', '人脸识别、情绪分析与谜之插画师.pptx', '倚天屠龙记.txt', '图像识别作业.R', '第七次作业.R', '第三次作业.R', '第二次作业.R', '第五次作业.R', '第六次作业.R', '第四次.R', '简单函数日期处理.html', '简单函数日期处理.Rmd', '统计软件复习.R', '课程信息.csv', '课程列表.csv', '马允全_2016201708_统计软件第一次作业.html', '马允全_2016201708_统计软件第一次作业.rar', '马允全_2016201708_统计软件第一次作业.Rmd', '马允全_2016201708_统计软件第七次作业.html', '马允全_2016201708_统计软件第七次作业.Rmd', '马允全_2016201708_统计软件第三次作业.html', '马允全_2016201708_统计软件第三次作业.rar', '马允全_2016201708_统计软件第三次作业.Rmd', '马允全_2016201708_统计软件第二次作业.html', '马允全_2016201708_统计软件第二次作业.rar', '马允全_2016201708_统计软件第二次作业.Rmd', '马允全_2016201708_统计软件第五次作业.html', '马允全_2016201708_统计软件第五次作业.Rmd', '马允全_2016201708_统计软件第六次作业.html', '马允全_2016201708_统计软件第六次作业.Rmd', '马允全_2016201708_统计软件第四次作业.html', '马允全_2016201708_统计软件第四次作业.rar', '马允全_2016201708_统计软件第四次作业.Rmd']]\n"
     ]
    }
   ],
   "source": [
    "print(walk('C:/Users/w/Desktop/python_jupyter'))\n",
    "print(walk('C:/Users/w/Desktop/R/统计软件/homework'))"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.2"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": false,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {
    "height": "159.333px",
    "left": "907.667px",
    "top": "110px",
    "width": "212px"
   },
   "toc_section_display": true,
   "toc_window_display": false
  },
  "varInspector": {
   "cols": {
    "lenName": 16,
    "lenType": 16,
    "lenVar": 40
   },
   "kernels_config": {
    "python": {
     "delete_cmd_postfix": "",
     "delete_cmd_prefix": "del ",
     "library": "var_list.py",
     "varRefreshCmd": "print(var_dic_list())"
    },
    "r": {
     "delete_cmd_postfix": ") ",
     "delete_cmd_prefix": "rm(",
     "library": "var_list.r",
     "varRefreshCmd": "cat(var_dic_list()) "
    }
   },
   "types_to_exclude": [
    "module",
    "function",
    "builtin_function_or_method",
    "instance",
    "_Feature"
   ],
   "window_display": false
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
